diff options
Diffstat (limited to 'tools/@types/lib.gecko.xpcom.d.ts')
-rw-r--r-- | tools/@types/lib.gecko.xpcom.d.ts | 16271 |
1 files changed, 16271 insertions, 0 deletions
diff --git a/tools/@types/lib.gecko.xpcom.d.ts b/tools/@types/lib.gecko.xpcom.d.ts new file mode 100644 index 0000000000..ba4d17fef6 --- /dev/null +++ b/tools/@types/lib.gecko.xpcom.d.ts @@ -0,0 +1,16271 @@ +/** + * NOTE: Do not modify this file by hand. + * Content was generated from source XPCOM .idl files. + */ + +declare global { + +// https://searchfox.org/mozilla-central/source/toolkit/components/aboutthirdparty/nsIAboutThirdParty.idl + +interface nsIInstalledApplication extends nsISupports { + readonly name: string; + readonly publisher: string; +} + +interface nsIAboutThirdParty extends nsISupports { + readonly ModuleType_Unknown: 1; + readonly ModuleType_IME: 2; + readonly ModuleType_ShellExtension: 4; + readonly ModuleType_BlockedByUser: 8; + readonly ModuleType_BlockedByUserAtLaunch: 16; + + lookupModuleType(aLeafName: string): u32; + lookupApplication(aModulePath: string): nsIInstalledApplication; + readonly isDynamicBlocklistAvailable: boolean; + readonly isDynamicBlocklistDisabled: boolean; + updateBlocklist(aLeafName: string, aNewBlockStatus: boolean): Promise<any>; + collectSystemInfo(): Promise<any>; + openAndCloseFileDialogForTesting(aModuleName: string, aInitialDir: string, aFilter: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/aboutwindowsmessages/nsIAboutWindowsMessages.idl + +interface nsIAboutWindowsMessages extends nsISupports { + getMessages(currentWindow: mozIDOMWindowProxy, messages: OutParam<string[][]>, windowTitles: OutParam<string[]>): void; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibilityService.idl + +interface nsIAccessibilityService extends nsISupports { + getApplicationAccessible(): nsIAccessible; + getAccessibleFor(aNode: Node): nsIAccessible; + getAccessibleDescendantFor(aNode: Node): nsIAccessible; + getStringRole(aRole: u32): string; + getStringStates(aStates: u32, aExtraStates: u32): nsISupports; + getStringEventType(aEventType: u32): string; + getStringRelationType(aRelationType: u32): string; + getAccessibleFromCache(aNode: Node): nsIAccessible; + createAccessiblePivot(aRoot: nsIAccessible): nsIAccessiblePivot; + createTextLeafPoint(aAccessible: nsIAccessible, aOffset: i32): nsIAccessibleTextLeafPoint; + setLogging(aModules: string): void; + isLogged(aModule: string): boolean; + getConsumers(): string; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessible.idl + +interface nsIAccessible extends nsISupports { + readonly parent: nsIAccessible; + readonly nextSibling: nsIAccessible; + readonly previousSibling: nsIAccessible; + readonly firstChild: nsIAccessible; + readonly lastChild: nsIAccessible; + readonly children: nsIArray; + readonly childCount: i32; + readonly indexInParent: i32; + readonly uniqueID: i64; + readonly DOMNode: Node; + readonly id: string; + readonly document: nsIAccessibleDocument; + readonly rootDocument: nsIAccessibleDocument; + readonly language: string; + readonly name: string; + readonly value: string; + readonly description: string; + readonly accessKey: string; + readonly keyboardShortcut: string; + readonly role: u32; + getState(aState: OutParam<u32>, aExtraState: OutParam<u32>): void; + readonly focusedChild: nsIAccessible; + readonly attributes: nsIPersistentProperties; + readonly cache: nsIPersistentProperties; + readonly nativeInterface: nsISupports; + groupPosition(aGroupLevel: OutParam<i32>, aSimilarItemsInGroup: OutParam<i32>, aPositionInGroup: OutParam<i32>): void; + getChildAtPoint(x: i32, y: i32): nsIAccessible; + getDeepestChildAtPoint(x: i32, y: i32): nsIAccessible; + getDeepestChildAtPointInProcess(x: i32, y: i32): nsIAccessible; + getChildAt(aChildIndex: i32): nsIAccessible; + getRelationByType(aRelationType: u32): nsIAccessibleRelation; + getRelations(): nsIArray; + getBounds(x: OutParam<i32>, y: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void; + getBoundsInCSSPixels(aX: OutParam<i32>, aY: OutParam<i32>, aWidth: OutParam<i32>, aHeight: OutParam<i32>): void; + setSelected(isSelected: boolean): void; + takeSelection(): void; + takeFocus(): void; + readonly actionCount: u8; + getActionName(index: u8): string; + getActionDescription(aIndex: u8): string; + doAction(index: u8): void; + scrollTo(aScrollType: u32): void; + scrollToPoint(coordinateType: u32, x: i32, y: i32): void; + announce(announcement: string, priority: u16): void; + readonly computedARIARole: string; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleAnnouncementEvent.idl + +interface nsIAccessibleAnnouncementEvent extends nsIAccessibleEvent { + readonly POLITE: 0; + readonly ASSERTIVE: 1; + + readonly announcement: string; + readonly priority: u16; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleApplication.idl + +interface nsIAccessibleApplication extends nsISupports { + readonly appName: string; + readonly appVersion: string; + readonly platformName: string; + readonly platformVersion: string; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleCaretMoveEvent.idl + +interface nsIAccessibleCaretMoveEvent extends nsIAccessibleEvent { + readonly caretOffset: i32; + readonly isSelectionCollapsed: boolean; + readonly isAtEndOfLine: boolean; + readonly granularity: i32; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleDocument.idl + +interface nsIAccessibleDocument extends nsISupports { + readonly URL: string; + readonly title: string; + readonly mimeType: string; + readonly docType: string; + readonly DOMDocument: Document; + readonly window: mozIDOMWindowProxy; + readonly parentDocument: nsIAccessibleDocument; + readonly childDocumentCount: u32; + getChildDocumentAt(index: u32): nsIAccessibleDocument; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleEditableText.idl + +interface nsIAccessibleEditableText extends nsISupports { + setTextContents(text: string): void; + insertText(text: string, position: i32): void; + copyText(startPos: i32, endPos: i32): void; + cutText(startPos: i32, endPos: i32): void; + deleteText(startPos: i32, endPos: i32): void; + pasteText(position: i32): void; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleEvent.idl + +interface nsIAccessibleEvent extends nsISupports { + readonly EVENT_SHOW: 1; + readonly EVENT_HIDE: 2; + readonly EVENT_REORDER: 3; + readonly EVENT_FOCUS: 4; + readonly EVENT_STATE_CHANGE: 5; + readonly EVENT_NAME_CHANGE: 6; + readonly EVENT_DESCRIPTION_CHANGE: 7; + readonly EVENT_VALUE_CHANGE: 8; + readonly EVENT_SELECTION: 9; + readonly EVENT_SELECTION_ADD: 10; + readonly EVENT_SELECTION_REMOVE: 11; + readonly EVENT_SELECTION_WITHIN: 12; + readonly EVENT_ALERT: 13; + readonly EVENT_MENU_START: 14; + readonly EVENT_MENU_END: 15; + readonly EVENT_MENUPOPUP_START: 16; + readonly EVENT_MENUPOPUP_END: 17; + readonly EVENT_DRAGDROP_START: 18; + readonly EVENT_SCROLLING_START: 19; + readonly EVENT_SCROLLING_END: 20; + readonly EVENT_DOCUMENT_LOAD_COMPLETE: 21; + readonly EVENT_DOCUMENT_RELOAD: 22; + readonly EVENT_DOCUMENT_LOAD_STOPPED: 23; + readonly EVENT_TEXT_ATTRIBUTE_CHANGED: 24; + readonly EVENT_TEXT_CARET_MOVED: 25; + readonly EVENT_TEXT_INSERTED: 26; + readonly EVENT_TEXT_REMOVED: 27; + readonly EVENT_TEXT_SELECTION_CHANGED: 28; + readonly EVENT_WINDOW_ACTIVATE: 29; + readonly EVENT_WINDOW_DEACTIVATE: 30; + readonly EVENT_WINDOW_MAXIMIZE: 31; + readonly EVENT_WINDOW_MINIMIZE: 32; + readonly EVENT_WINDOW_RESTORE: 33; + readonly EVENT_OBJECT_ATTRIBUTE_CHANGED: 34; + readonly EVENT_TEXT_VALUE_CHANGE: 35; + readonly EVENT_SCROLLING: 36; + readonly EVENT_ANNOUNCEMENT: 37; + readonly EVENT_LIVE_REGION_ADDED: 38; + readonly EVENT_LIVE_REGION_REMOVED: 39; + readonly EVENT_INNER_REORDER: 40; + readonly EVENT_LAST_ENTRY: 41; + + readonly eventType: u32; + readonly accessible: nsIAccessible; + readonly accessibleDocument: nsIAccessibleDocument; + readonly DOMNode: Node; + readonly isFromUserInput: boolean; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHideEvent.idl + +interface nsIAccessibleHideEvent extends nsIAccessibleEvent { + readonly targetParent: nsIAccessible; + readonly targetNextSibling: nsIAccessible; + readonly targetPrevSibling: nsIAccessible; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHyperLink.idl + +interface nsIAccessibleHyperLink extends nsISupports { + readonly startIndex: i32; + readonly endIndex: i32; + readonly valid: boolean; + readonly anchorCount: i32; + getURI(index: i32): nsIURI; + getAnchor(index: i32): nsIAccessible; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHyperText.idl + +interface nsIAccessibleHyperText extends nsISupports { + readonly linkCount: i32; + getLinkAt(index: i32): nsIAccessibleHyperLink; + getLinkIndex(link: nsIAccessibleHyperLink): i32; + getLinkIndexAtOffset(offset: i32): i32; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleImage.idl + +interface nsIAccessibleImage extends nsISupports { + getImagePosition(coordType: u32, x: OutParam<i32>, y: OutParam<i32>): void; + getImageSize(width: OutParam<i32>, height: OutParam<i32>): void; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleObjectAttributeChangedEvent.idl + +interface nsIAccessibleObjectAttributeChangedEvent extends nsIAccessibleEvent { + readonly changedAttribute: string; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessiblePivot.idl + +interface nsIAccessiblePivot extends nsISupports { + next(aAnchor: nsIAccessible, aRule: nsIAccessibleTraversalRule, aIncludeStart?: boolean): nsIAccessible; + prev(aAnchor: nsIAccessible, aRule: nsIAccessibleTraversalRule, aIncludeStart?: boolean): nsIAccessible; + first(aRule: nsIAccessibleTraversalRule): nsIAccessible; + last(aRule: nsIAccessibleTraversalRule): nsIAccessible; + atPoint(aX: i32, aY: i32, aRule: nsIAccessibleTraversalRule): nsIAccessible; +} + +interface nsIAccessibleTraversalRule extends nsISupports { + readonly FILTER_IGNORE: 0; + readonly FILTER_MATCH: 1; + readonly FILTER_IGNORE_SUBTREE: 2; + + match(aAccessible: nsIAccessible): u16; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleRelation.idl + +interface nsIAccessibleRelation extends nsISupports { + readonly RELATION_LABELLED_BY: 0; + readonly RELATION_LABEL_FOR: 1; + readonly RELATION_DESCRIBED_BY: 2; + readonly RELATION_DESCRIPTION_FOR: 3; + readonly RELATION_NODE_CHILD_OF: 4; + readonly RELATION_NODE_PARENT_OF: 5; + readonly RELATION_CONTROLLED_BY: 6; + readonly RELATION_CONTROLLER_FOR: 7; + readonly RELATION_FLOWS_TO: 8; + readonly RELATION_FLOWS_FROM: 9; + readonly RELATION_MEMBER_OF: 10; + readonly RELATION_SUBWINDOW_OF: 11; + readonly RELATION_EMBEDS: 12; + readonly RELATION_EMBEDDED_BY: 13; + readonly RELATION_POPUP_FOR: 14; + readonly RELATION_PARENT_WINDOW_OF: 15; + readonly RELATION_DEFAULT_BUTTON: 16; + readonly RELATION_CONTAINING_DOCUMENT: 17; + readonly RELATION_CONTAINING_TAB_PANE: 18; + readonly RELATION_CONTAINING_WINDOW: 19; + readonly RELATION_CONTAINING_APPLICATION: 20; + readonly RELATION_DETAILS: 21; + readonly RELATION_DETAILS_FOR: 22; + readonly RELATION_ERRORMSG: 23; + readonly RELATION_ERRORMSG_FOR: 24; + readonly RELATION_LINKS_TO: 25; + + readonly relationType: u32; + readonly targetsCount: u32; + getTarget(index: u32): nsIAccessible; + getTargets(): nsIArray; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleRole.idl + +interface nsIAccessibleRole extends nsISupports { + readonly ROLE_NOTHING: 0; + readonly ROLE_MENUBAR: 1; + readonly ROLE_SCROLLBAR: 2; + readonly ROLE_ALERT: 3; + readonly ROLE_INTERNAL_FRAME: 4; + readonly ROLE_MENUPOPUP: 5; + readonly ROLE_MENUITEM: 6; + readonly ROLE_TOOLTIP: 7; + readonly ROLE_APPLICATION: 8; + readonly ROLE_DOCUMENT: 9; + readonly ROLE_PANE: 10; + readonly ROLE_DIALOG: 11; + readonly ROLE_GROUPING: 12; + readonly ROLE_SEPARATOR: 13; + readonly ROLE_TOOLBAR: 14; + readonly ROLE_STATUSBAR: 15; + readonly ROLE_TABLE: 16; + readonly ROLE_COLUMNHEADER: 17; + readonly ROLE_ROWHEADER: 18; + readonly ROLE_ROW: 19; + readonly ROLE_CELL: 20; + readonly ROLE_LINK: 21; + readonly ROLE_LIST: 22; + readonly ROLE_LISTITEM: 23; + readonly ROLE_OUTLINE: 24; + readonly ROLE_OUTLINEITEM: 25; + readonly ROLE_PAGETAB: 26; + readonly ROLE_PROPERTYPAGE: 27; + readonly ROLE_GRAPHIC: 28; + readonly ROLE_STATICTEXT: 29; + readonly ROLE_TEXT_LEAF: 30; + readonly ROLE_PUSHBUTTON: 31; + readonly ROLE_CHECKBUTTON: 32; + readonly ROLE_RADIOBUTTON: 33; + readonly ROLE_COMBOBOX: 34; + readonly ROLE_PROGRESSBAR: 35; + readonly ROLE_SLIDER: 36; + readonly ROLE_SPINBUTTON: 37; + readonly ROLE_DIAGRAM: 38; + readonly ROLE_ANIMATION: 39; + readonly ROLE_BUTTONDROPDOWN: 40; + readonly ROLE_BUTTONMENU: 41; + readonly ROLE_WHITESPACE: 42; + readonly ROLE_PAGETABLIST: 43; + readonly ROLE_CANVAS: 44; + readonly ROLE_CHECK_MENU_ITEM: 45; + readonly ROLE_DATE_EDITOR: 46; + readonly ROLE_CHROME_WINDOW: 47; + readonly ROLE_LABEL: 48; + readonly ROLE_PASSWORD_TEXT: 49; + readonly ROLE_RADIO_MENU_ITEM: 50; + readonly ROLE_TEXT_CONTAINER: 51; + readonly ROLE_TOGGLE_BUTTON: 52; + readonly ROLE_TREE_TABLE: 53; + readonly ROLE_PARAGRAPH: 54; + readonly ROLE_ENTRY: 55; + readonly ROLE_CAPTION: 56; + readonly ROLE_NON_NATIVE_DOCUMENT: 57; + readonly ROLE_HEADING: 58; + readonly ROLE_SECTION: 59; + readonly ROLE_FORM: 60; + readonly ROLE_APP_ROOT: 61; + readonly ROLE_PARENT_MENUITEM: 62; + readonly ROLE_COMBOBOX_LIST: 63; + readonly ROLE_COMBOBOX_OPTION: 64; + readonly ROLE_IMAGE_MAP: 65; + readonly ROLE_OPTION: 66; + readonly ROLE_RICH_OPTION: 67; + readonly ROLE_LISTBOX: 68; + readonly ROLE_FLAT_EQUATION: 69; + readonly ROLE_GRID_CELL: 70; + readonly ROLE_NOTE: 71; + readonly ROLE_FIGURE: 72; + readonly ROLE_CHECK_RICH_OPTION: 73; + readonly ROLE_DEFINITION_LIST: 74; + readonly ROLE_TERM: 75; + readonly ROLE_DEFINITION: 76; + readonly ROLE_KEY: 77; + readonly ROLE_SWITCH: 78; + readonly ROLE_MATHML_MATH: 79; + readonly ROLE_MATHML_IDENTIFIER: 80; + readonly ROLE_MATHML_NUMBER: 81; + readonly ROLE_MATHML_OPERATOR: 82; + readonly ROLE_MATHML_TEXT: 83; + readonly ROLE_MATHML_STRING_LITERAL: 84; + readonly ROLE_MATHML_GLYPH: 85; + readonly ROLE_MATHML_ROW: 86; + readonly ROLE_MATHML_FRACTION: 87; + readonly ROLE_MATHML_SQUARE_ROOT: 88; + readonly ROLE_MATHML_ROOT: 89; + readonly ROLE_MATHML_ENCLOSED: 90; + readonly ROLE_MATHML_STYLE: 91; + readonly ROLE_MATHML_SUB: 92; + readonly ROLE_MATHML_SUP: 93; + readonly ROLE_MATHML_SUB_SUP: 94; + readonly ROLE_MATHML_UNDER: 95; + readonly ROLE_MATHML_OVER: 96; + readonly ROLE_MATHML_UNDER_OVER: 97; + readonly ROLE_MATHML_MULTISCRIPTS: 98; + readonly ROLE_MATHML_TABLE: 99; + readonly ROLE_MATHML_LABELED_ROW: 100; + readonly ROLE_MATHML_TABLE_ROW: 101; + readonly ROLE_MATHML_CELL: 102; + readonly ROLE_MATHML_ACTION: 103; + readonly ROLE_MATHML_ERROR: 104; + readonly ROLE_MATHML_STACK: 105; + readonly ROLE_MATHML_LONG_DIVISION: 106; + readonly ROLE_MATHML_STACK_GROUP: 107; + readonly ROLE_MATHML_STACK_ROW: 108; + readonly ROLE_MATHML_STACK_CARRIES: 109; + readonly ROLE_MATHML_STACK_CARRY: 110; + readonly ROLE_MATHML_STACK_LINE: 111; + readonly ROLE_RADIO_GROUP: 112; + readonly ROLE_TEXT: 113; + readonly ROLE_DETAILS: 114; + readonly ROLE_SUMMARY: 115; + readonly ROLE_LANDMARK: 116; + readonly ROLE_NAVIGATION: 117; + readonly ROLE_FOOTNOTE: 118; + readonly ROLE_ARTICLE: 119; + readonly ROLE_REGION: 120; + readonly ROLE_EDITCOMBOBOX: 121; + readonly ROLE_BLOCKQUOTE: 122; + readonly ROLE_CONTENT_DELETION: 123; + readonly ROLE_CONTENT_INSERTION: 124; + readonly ROLE_FORM_LANDMARK: 125; + readonly ROLE_MARK: 126; + readonly ROLE_SUGGESTION: 127; + readonly ROLE_COMMENT: 128; + readonly ROLE_CODE: 129; + readonly ROLE_TIME_EDITOR: 130; + readonly ROLE_LISTITEM_MARKER: 131; + readonly ROLE_METER: 132; + readonly ROLE_SUBSCRIPT: 133; + readonly ROLE_SUPERSCRIPT: 134; + readonly ROLE_EMPHASIS: 135; + readonly ROLE_STRONG: 136; + readonly ROLE_TIME: 137; + readonly ROLE_GRID: 138; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleScrollingEvent.idl + +interface nsIAccessibleScrollingEvent extends nsIAccessibleEvent { + readonly scrollX: u32; + readonly scrollY: u32; + readonly maxScrollX: u32; + readonly maxScrollY: u32; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleSelectable.idl + +interface nsIAccessibleSelectable extends nsISupports { + readonly selectedItems: nsIArray; + readonly selectedItemCount: u32; + getSelectedItemAt(index: u32): nsIAccessible; + isItemSelected(index: u32): boolean; + addItemToSelection(index: u32): void; + removeItemFromSelection(index: u32): void; + selectAll(): boolean; + unselectAll(): void; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleStateChangeEvent.idl + +interface nsIAccessibleStateChangeEvent extends nsIAccessibleEvent { + readonly state: u32; + readonly isExtraState: boolean; + readonly isEnabled: boolean; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleStates.idl + +interface nsIAccessibleStates extends nsISupports { + readonly STATE_UNAVAILABLE: 1; + readonly STATE_SELECTED: 2; + readonly STATE_FOCUSED: 4; + readonly STATE_PRESSED: 8; + readonly STATE_CHECKED: 16; + readonly STATE_MIXED: 32; + readonly STATE_READONLY: 64; + readonly STATE_HOTTRACKED: 128; + readonly STATE_DEFAULT: 256; + readonly STATE_EXPANDED: 512; + readonly STATE_COLLAPSED: 1024; + readonly STATE_BUSY: 2048; + readonly STATE_FLOATING: 4096; + readonly STATE_MARQUEED: 8192; + readonly STATE_ANIMATED: 16384; + readonly STATE_INVISIBLE: 32768; + readonly STATE_OFFSCREEN: 65536; + readonly STATE_SIZEABLE: 131072; + readonly STATE_MOVEABLE: 262144; + readonly STATE_SELFVOICING: 524288; + readonly STATE_FOCUSABLE: 1048576; + readonly STATE_SELECTABLE: 2097152; + readonly STATE_LINKED: 4194304; + readonly STATE_TRAVERSED: 8388608; + readonly STATE_MULTISELECTABLE: 16777216; + readonly STATE_EXTSELECTABLE: 33554432; + readonly STATE_ALERT_LOW: 67108864; + readonly STATE_ALERT_MEDIUM: 134217728; + readonly STATE_ALERT_HIGH: 268435456; + readonly STATE_PROTECTED: 536870912; + readonly STATE_HASPOPUP: 1073741824; + readonly STATE_REQUIRED: 67108864; + readonly STATE_IMPORTANT: 134217728; + readonly STATE_INVALID: 268435456; + readonly STATE_CHECKABLE: 8192; + readonly EXT_STATE_SUPPORTS_AUTOCOMPLETION: 1; + readonly EXT_STATE_DEFUNCT: 2; + readonly EXT_STATE_SELECTABLE_TEXT: 4; + readonly EXT_STATE_EDITABLE: 8; + readonly EXT_STATE_ACTIVE: 16; + readonly EXT_STATE_MODAL: 32; + readonly EXT_STATE_MULTI_LINE: 64; + readonly EXT_STATE_HORIZONTAL: 128; + readonly EXT_STATE_OPAQUE: 256; + readonly EXT_STATE_SINGLE_LINE: 512; + readonly EXT_STATE_TRANSIENT: 1024; + readonly EXT_STATE_VERTICAL: 2048; + readonly EXT_STATE_STALE: 4096; + readonly EXT_STATE_ENABLED: 8192; + readonly EXT_STATE_SENSITIVE: 16384; + readonly EXT_STATE_EXPANDABLE: 32768; + readonly EXT_STATE_PINNED: 65536; + readonly EXT_STATE_CURRENT: 131072; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTable.idl + +interface nsIAccessibleTable extends nsISupports { + readonly caption: nsIAccessible; + readonly summary: string; + readonly columnCount: i32; + readonly rowCount: i32; + getCellAt(rowIndex: i32, columnIndex: i32): nsIAccessible; + getCellIndexAt(rowIndex: i32, columnIndex: i32): i32; + getColumnIndexAt(cellIndex: i32): i32; + getRowIndexAt(cellIndex: i32): i32; + getRowAndColumnIndicesAt(cellIndex: i32, rowIndex: OutParam<i32>, columnIndex: OutParam<i32>): void; + getColumnExtentAt(row: i32, column: i32): i32; + getRowExtentAt(row: i32, column: i32): i32; + getColumnDescription(columnIndex: i32): string; + getRowDescription(rowIndex: i32): string; + isColumnSelected(columnIndex: i32): boolean; + isRowSelected(rowIndex: i32): boolean; + isCellSelected(rowIndex: i32, columnIndex: i32): boolean; + readonly selectedCellCount: u32; + readonly selectedColumnCount: u32; + readonly selectedRowCount: u32; + readonly selectedCells: nsIArray; + getSelectedCellIndices(): u32[]; + getSelectedColumnIndices(): u32[]; + getSelectedRowIndices(): u32[]; + isProbablyForLayout(): boolean; +} + +interface nsIAccessibleTableCell extends nsISupports { + readonly table: nsIAccessibleTable; + readonly columnIndex: i32; + readonly rowIndex: i32; + readonly columnExtent: i32; + readonly rowExtent: i32; + readonly columnHeaderCells: nsIArray; + readonly rowHeaderCells: nsIArray; + isSelected(): boolean; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTableChangeEvent.idl + +interface nsIAccessibleTableChangeEvent extends nsIAccessibleEvent { + readonly rowOrColIndex: i32; + readonly RowsOrColsCount: i32; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleText.idl + +interface nsIAccessibleText extends nsISupports { + readonly TEXT_OFFSET_END_OF_TEXT: -1; + readonly TEXT_OFFSET_CARET: -2; + readonly BOUNDARY_CHAR: 0; + readonly BOUNDARY_WORD_START: 1; + readonly BOUNDARY_WORD_END: 2; + readonly BOUNDARY_SENTENCE_START: 3; + readonly BOUNDARY_SENTENCE_END: 4; + readonly BOUNDARY_LINE_START: 5; + readonly BOUNDARY_LINE_END: 6; + readonly BOUNDARY_PARAGRAPH: 7; + + caretOffset: i32; + getCaretRect(x: OutParam<i32>, y: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void; + readonly characterCount: i32; + readonly selectionCount: i32; + getText(startOffset: i32, endOffset: i32): string; + getTextAfterOffset(offset: i32, boundaryType: AccessibleTextBoundary, startOffset: OutParam<i32>, endOffset: OutParam<i32>): string; + getTextAtOffset(offset: i32, boundaryType: AccessibleTextBoundary, startOffset: OutParam<i32>, endOffset: OutParam<i32>): string; + getTextBeforeOffset(offset: i32, boundaryType: AccessibleTextBoundary, startOffset: OutParam<i32>, endOffset: OutParam<i32>): string; + getCharacterAtOffset(offset: i32): string; + getTextAttributes(includeDefAttrs: boolean, offset: i32, rangeStartOffset: OutParam<i32>, rangeEndOffset: OutParam<i32>): nsIPersistentProperties; + readonly defaultTextAttributes: nsIPersistentProperties; + getCharacterExtents(offset: i32, x: OutParam<i32>, y: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>, coordType: u32): void; + getRangeExtents(startOffset: i32, endOffset: i32, x: OutParam<i32>, y: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>, coordType: u32): void; + getOffsetAtPoint(x: i32, y: i32, coordType: u32): i32; + getSelectionBounds(selectionNum: i32, startOffset: OutParam<i32>, endOffset: OutParam<i32>): void; + setSelectionBounds(selectionNum: i32, startOffset: i32, endOffset: i32): void; + addSelection(startOffset: i32, endOffset: i32): void; + removeSelection(selectionNum: i32): void; + scrollSubstringTo(startIndex: i32, endIndex: i32, scrollType: u32): void; + scrollSubstringToPoint(startIndex: i32, endIndex: i32, coordinateType: u32, x: i32, y: i32): void; + readonly selectionRanges: nsIArray; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextChangeEvent.idl + +interface nsIAccessibleTextChangeEvent extends nsIAccessibleEvent { + readonly start: i32; + readonly length: u32; + readonly isInserted: boolean; + readonly modifiedText: string; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextLeafRange.idl + +interface nsIAccessibleTextLeafPoint extends nsISupports { + readonly DIRECTION_NEXT: 0; + readonly DIRECTION_PREVIOUS: 1; + readonly BOUNDARY_FLAG_DEFAULT: 0; + readonly BOUNDARY_FLAG_INCLUDE_ORIGIN: 1; + readonly BOUNDARY_FLAG_STOP_IN_EDITABLE: 2; + readonly BOUNDARY_FLAG_SKIP_LIST_ITEM_MARKER: 4; + + accessible: nsIAccessible; + offset: i32; + findBoundary(aBoundaryType: AccessibleTextBoundary, aDirection: u32, aFlags: u32): nsIAccessibleTextLeafPoint; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextRange.idl + +interface nsIAccessibleTextRange extends nsISupports { + readonly EndPoint_Start: 1; + readonly EndPoint_End: 2; + readonly AlignToTop: 0; + readonly AlignToBottom: 1; + + readonly startContainer: nsIAccessibleText; + readonly startOffset: i32; + readonly endContainer: nsIAccessibleText; + readonly endOffset: i32; + readonly container: nsIAccessible; + compare(aOtherRange: nsIAccessibleTextRange): boolean; + compareEndPoints(aEndPoint: u32, aOtherRange: nsIAccessibleTextRange, aOtherRangeEndPoint: u32): i32; + crop(aContainer: nsIAccessible): boolean; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextSelectionChangeEvent.idl + +interface nsIAccessibleTextSelectionChangeEvent extends nsIAccessibleEvent { + readonly selectionRanges: nsIArray; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTypes.idl + +interface nsIAccessibleScrollType extends nsISupports { + readonly SCROLL_TYPE_TOP_LEFT: 0; + readonly SCROLL_TYPE_BOTTOM_RIGHT: 1; + readonly SCROLL_TYPE_TOP_EDGE: 2; + readonly SCROLL_TYPE_BOTTOM_EDGE: 3; + readonly SCROLL_TYPE_LEFT_EDGE: 4; + readonly SCROLL_TYPE_RIGHT_EDGE: 5; + readonly SCROLL_TYPE_ANYWHERE: 6; +} + +interface nsIAccessibleCoordinateType extends nsISupports { + readonly COORDTYPE_SCREEN_RELATIVE: 0; + readonly COORDTYPE_WINDOW_RELATIVE: 1; + readonly COORDTYPE_PARENT_RELATIVE: 2; +} + +// https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleValue.idl + +interface nsIAccessibleValue extends nsISupports { + readonly maximumValue: double; + readonly minimumValue: double; + currentValue: double; + readonly minimumIncrement: double; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/alerts/nsIAlertsService.idl + +interface nsIAlertNotificationImageListener extends nsISupports { + onImageReady(aUserData: nsISupports, aRequest: imgIRequest): void; + onImageMissing(aUserData: nsISupports): void; +} + +interface nsIAlertAction extends nsISupports { + readonly action: string; + readonly title: string; + readonly iconURL: string; + readonly windowsSystemActivationType: boolean; + readonly opaqueRelaunchData: string; +} + +interface nsIAlertNotification extends nsISupports { + init(aName?: string, aImageURL?: string, aTitle?: string, aText?: string, aTextClickable?: boolean, aCookie?: string, aDir?: string, aLang?: string, aData?: string, aPrincipal?: nsIPrincipal, aInPrivateBrowsing?: boolean, aRequireInteraction?: boolean, aSilent?: boolean, aVibrate?: u32[]): void; + readonly name: string; + readonly imageURL: string; + readonly title: string; + readonly text: string; + readonly textClickable: boolean; + readonly cookie: string; + readonly dir: string; + readonly lang: string; + readonly data: string; + readonly principal: nsIPrincipal; + readonly URI: nsIURI; + readonly inPrivateBrowsing: boolean; + readonly requireInteraction: boolean; + readonly silent: boolean; + readonly vibrate: u32[]; + actions: nsIAlertAction[]; + readonly actionable: boolean; + readonly source: string; + opaqueRelaunchData: string; + loadImage(aTimeout: u32, aListener: nsIAlertNotificationImageListener, aUserData?: nsISupports): nsICancelable; +} + +interface nsIAlertsService extends nsISupports { + showPersistentNotification(aPersistentData: string, aAlert: nsIAlertNotification, aAlertListener?: nsIObserver): void; + showAlert(aAlert: nsIAlertNotification, aAlertListener?: nsIObserver): void; + showAlertNotification(aImageURL: string, aTitle: string, aText: string, aTextClickable?: boolean, aCookie?: string, aAlertListener?: nsIObserver, aName?: string, aDir?: string, aLang?: string, aData?: string, aPrincipal?: nsIPrincipal, aInPrivateBrowsing?: boolean, aRequireInteraction?: boolean): void; + closeAlert(aName?: string, aContextClosed?: boolean): void; +} + +interface nsIAlertsDoNotDisturb extends nsISupports { + manualDoNotDisturb: boolean; + suppressForScreenSharing: boolean; +} + +interface nsIAlertsIconData extends nsISupports { + showAlertWithIconData(aAlert: nsIAlertNotification, aAlertListener: nsIObserver, aIconSize: u32, aIconData: u8[]): void; +} + +interface nsIAlertsIconURI extends nsISupports { + showAlertWithIconURI(aAlert: nsIAlertNotification, aAlertListener?: nsIObserver, aIconURI?: nsIURI): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/alerts/nsIWindowsAlertsService.idl + +} // global + +declare namespace nsIWindowsAlertNotification { + +enum ImagePlacement { + eInline = 0, + eHero = 1, + eIcon = 2, +} + +} + +declare global { + +interface nsIWindowsAlertNotification extends nsIAlertNotification, Enums<typeof nsIWindowsAlertNotification.ImagePlacement> { + handleActions: boolean; + imagePlacement: nsIWindowsAlertNotification.ImagePlacement; +} + +interface nsIWindowsAlertsService extends nsIAlertsService { + handleWindowsTag(aWindowsTag: string): Promise<any>; + getXmlStringForWindowsAlert(aAlert: nsIAlertNotification, aWindowsTag?: string): string; + removeAllNotificationsForInstall(): void; +} + +// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIAppShellService.idl + +interface nsIAppShellService extends nsISupports { + readonly SIZE_TO_CONTENT: -1; + + createTopLevelWindow(aParent: nsIAppWindow, aUrl: nsIURI, aChromeMask: u32, aInitialWidth: i32, aInitialHeight: i32): nsIAppWindow; + createWindowlessBrowser(aIsChrome?: boolean, aChromeMask?: u32): nsIWindowlessBrowser; + destroyHiddenWindow(): void; + readonly hiddenWindow: nsIAppWindow; + readonly hiddenDOMWindow: mozIDOMWindowProxy; + readonly applicationProvidedHiddenWindow: boolean; + registerTopLevelWindow(aWindow: nsIAppWindow): void; + unregisterTopLevelWindow(aWindow: nsIAppWindow): void; + readonly hasHiddenWindow: boolean; + startEventLoopLagTracking(): boolean; + stopEventLoopLagTracking(): void; +} + +// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIAppWindow.idl + +interface nsIAppWindow extends nsISupports { + readonly lowestZ: 0; + readonly loweredZ: 4; + readonly normalZ: 5; + readonly raisedZ: 6; + readonly highestZ: 9; + + readonly docShell: nsIDocShell; + intrinsicallySized: boolean; + readonly primaryContentShell: nsIDocShellTreeItem; + readonly primaryRemoteTab: nsIRemoteTab; + readonly primaryContentBrowsingContext: BrowsingContext; + remoteTabAdded(aTab: nsIRemoteTab, aPrimary: boolean): void; + remoteTabRemoved(aTab: nsIRemoteTab): void; + readonly outerToInnerHeightDifferenceInCSSPixels: u32; + readonly outerToInnerWidthDifferenceInCSSPixels: u32; + center(aRelative: nsIAppWindow, aScreen: boolean, aAlert: boolean): void; + showModal(): void; + lockAspectRatio(aShouldLock: boolean): void; + zLevel: u32; + chromeFlags: u32; + assumeChromeFlagsAreFrozen(): void; + createNewWindow(aChromeFlags: i32, aOpenWindowInfo: nsIOpenWindowInfo): nsIAppWindow; + XULBrowserWindow: nsIXULBrowserWindow; + readonly initialOpenWindowInfo: nsIOpenWindowInfo; + needFastSnaphot(): void; +} + +// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowMediator.idl + +interface nsIWindowMediator extends nsISupports { + readonly zLevelTop: 1; + readonly zLevelBottom: 2; + readonly zLevelBelow: 3; + + getEnumerator(aWindowType: string): nsISimpleEnumerator; + getAppWindowEnumerator(aWindowType: string): nsISimpleEnumerator; + getZOrderAppWindowEnumerator(aWindowType: string, aFrontToBack: boolean): nsISimpleEnumerator; + getMostRecentWindow(aWindowType: string): mozIDOMWindowProxy; + getMostRecentBrowserWindow(): mozIDOMWindowProxy; + getMostRecentNonPBWindow(aWindowType: string): mozIDOMWindowProxy; + getOuterWindowWithId(aOuterWindowID: u64): mozIDOMWindowProxy; + getCurrentInnerWindowWithId(aInnerWindowID: u64): mozIDOMWindow; + addListener(aListener: nsIWindowMediatorListener): void; + removeListener(aListener: nsIWindowMediatorListener): void; +} + +// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowMediatorListener.idl + +interface nsIWindowMediatorListener extends nsISupports { + onOpenWindow(window: nsIAppWindow): void; + onCloseWindow(window: nsIAppWindow): void; +} + +// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowlessBrowser.idl + +interface nsIWindowlessBrowser extends nsIWebNavigation { + close(): void; + readonly docShell: nsIDocShell; + readonly browsingContext: BrowsingContext; +} + +// https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIXULBrowserWindow.idl + +interface nsIXULBrowserWindow extends nsISupports { + setOverLink(link: string): void; + onBeforeLinkTraversal(originalTarget: string, linkURI: nsIURI, linkNode: Node, isAppTab: boolean): string; + showTooltip(x: i32, y: i32, tooltip: string, direction: string, browser: Element): void; + hideTooltip(): void; + getTabCount(): u32; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/startup/public/nsIAppStartup.idl + +} // global + +declare namespace nsIAppStartup { + +enum IDLShutdownPhase { + SHUTDOWN_PHASE_NOTINSHUTDOWN = 0, + SHUTDOWN_PHASE_APPSHUTDOWNCONFIRMED = 1, + SHUTDOWN_PHASE_APPSHUTDOWNNETTEARDOWN = 2, + SHUTDOWN_PHASE_APPSHUTDOWNTEARDOWN = 3, + SHUTDOWN_PHASE_APPSHUTDOWN = 4, + SHUTDOWN_PHASE_APPSHUTDOWNQM = 5, + SHUTDOWN_PHASE_APPSHUTDOWNRELEMETRY = 6, + SHUTDOWN_PHASE_XPCOMWILLSHUTDOWN = 7, + SHUTDOWN_PHASE_XPCOMSHUTDOWN = 8, +} + +} + +declare global { + +interface nsIAppStartup extends nsISupports, Enums<typeof nsIAppStartup.IDLShutdownPhase> { + readonly eConsiderQuit: 1; + readonly eAttemptQuit: 2; + readonly eForceQuit: 3; + readonly eRestart: 16; + readonly eSilently: 256; + + createHiddenWindow(): void; + destroyHiddenWindow(): void; + run(): void; + enterLastWindowClosingSurvivalArea(): void; + exitLastWindowClosingSurvivalArea(): void; + readonly automaticSafeModeNecessary: boolean; + restartInSafeMode(aQuitMode: u32): void; + createInstanceWithProfile(aProfile: nsIToolkitProfile): void; + trackStartupCrashBegin(): boolean; + trackStartupCrashEnd(): void; + quit(aMode: u32, aExitCode?: i32): boolean; + advanceShutdownPhase(aPhase: nsIAppStartup.IDLShutdownPhase): void; + isInOrBeyondShutdownPhase(aPhase: nsIAppStartup.IDLShutdownPhase): boolean; + readonly shuttingDown: boolean; + readonly startingUp: boolean; + readonly restarting: boolean; + readonly wasRestarted: boolean; + readonly wasSilentlyStarted: boolean; + readonly secondsSinceLastOSRestart: i64; + readonly showedPreXULSkeletonUI: boolean; + getStartupInfo(): any; + interrupted: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteController.idl + +interface nsIAutoCompleteController extends nsISupports { + readonly STATUS_NONE: 1; + readonly STATUS_SEARCHING: 2; + readonly STATUS_COMPLETE_NO_MATCH: 3; + readonly STATUS_COMPLETE_MATCH: 4; + + input: nsIAutoCompleteInput; + readonly searchStatus: u16; + readonly matchCount: u32; + startSearch(searchString: string): void; + stopSearch(): void; + handleText(): boolean; + handleEnter(aIsPopupSelection: boolean, aEvent?: Event): boolean; + handleEscape(): boolean; + handleStartComposition(): void; + handleEndComposition(): void; + handleTab(): void; + handleKeyNavigation(key: u32): boolean; + handleDelete(): boolean; + getValueAt(index: i32): string; + getLabelAt(index: i32): string; + getCommentAt(index: i32): string; + getStyleAt(index: i32): string; + getImageAt(index: i32): string; + getFinalCompleteValueAt(index: i32): string; + searchString: string; + setInitiallySelectedIndex(index: i32): void; + resetInternalState(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteInput.idl + +interface nsIAutoCompleteInput extends nsISupports { + readonly popupElement: Element; + readonly popup: nsIAutoCompletePopup; + readonly controller: nsIAutoCompleteController; + popupOpen: boolean; + disableAutoComplete: boolean; + completeDefaultIndex: boolean; + completeSelectedIndex: boolean; + forceComplete: boolean; + minResultsForPopup: u32; + maxRows: u32; + timeout: u32; + searchParam: string; + readonly searchCount: u32; + getSearchAt(index: u32): string; + textValue: string; + readonly selectionStart: i32; + readonly selectionEnd: i32; + selectTextRange(startIndex: i32, endIndex: i32): void; + onSearchBegin(): void; + onSearchComplete(): void; + onTextEntered(aEvent?: Event): void; + onTextReverted(): boolean; + readonly consumeRollupEvent: boolean; + readonly inPrivateContext: boolean; + readonly noRollupOnCaretMove: boolean; + readonly noRollupOnEmptySearch: boolean; + readonly userContextId: u32; + readonly invalidatePreviousResult: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompletePopup.idl + +interface nsIAutoCompletePopup extends nsISupports { + readonly INVALIDATE_REASON_NEW_RESULT: 0; + readonly INVALIDATE_REASON_DELETE: 1; + + readonly input: nsIAutoCompleteInput; + readonly overrideValue: string; + selectedIndex: i32; + readonly popupOpen: boolean; + openAutocompletePopup(input: nsIAutoCompleteInput, element: Element): void; + closePopup(): void; + invalidate(reason: u16): void; + selectBy(reverse: boolean, page: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteResult.idl + +interface nsIAutoCompleteResult extends nsISupports { + readonly RESULT_IGNORED: 1; + readonly RESULT_FAILURE: 2; + readonly RESULT_NOMATCH: 3; + readonly RESULT_SUCCESS: 4; + readonly RESULT_NOMATCH_ONGOING: 5; + readonly RESULT_SUCCESS_ONGOING: 6; + + readonly searchString: string; + readonly searchResult: u16; + readonly defaultIndex: i32; + readonly errorDescription: string; + readonly matchCount: u32; + getValueAt(index: i32): string; + getLabelAt(index: i32): string; + getCommentAt(index: i32): string; + getStyleAt(index: i32): string; + getImageAt(index: i32): string; + getFinalCompleteValueAt(index: i32): string; + isRemovableAt(rowIndex: i32): boolean; + removeValueAt(rowIndex: i32): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSearch.idl + +interface nsIAutoCompleteSearch extends nsISupports { + startSearch(searchString: string, searchParam: string, previousResult: nsIAutoCompleteResult, listener: nsIAutoCompleteObserver): void; + stopSearch(): void; +} + +interface nsIAutoCompleteObserver extends nsISupports { + onSearchResult(search: nsIAutoCompleteSearch, result: nsIAutoCompleteResult): void; +} + +interface nsIAutoCompleteSearchDescriptor extends nsISupports { + readonly SEARCH_TYPE_DELAYED: 0; + readonly SEARCH_TYPE_IMMEDIATE: 1; + + readonly searchType: u16; + readonly clearingAutoFillSearchesAgain: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSimpleResult.idl + +interface nsIAutoCompleteSimpleResult extends nsIAutoCompleteResult { + setSearchString(aSearchString: string): void; + setErrorDescription(aErrorDescription: string): void; + setDefaultIndex(aDefaultIndex: i32): void; + setSearchResult(aSearchResult: u16): void; + insertMatchAt(aIndex: i32, aValue: string, aComment: string, aImage?: string, aStyle?: string, aFinalCompleteValue?: string, aLabel?: string): void; + appendMatch(aValue: string, aComment: string, aImage?: string, aStyle?: string, aFinalCompleteValue?: string, aLabel?: string): void; + removeMatchAt(aIndex: i32): void; + getListener(): nsIAutoCompleteSimpleResultListener; + setListener(aListener: nsIAutoCompleteSimpleResultListener): void; +} + +interface nsIAutoCompleteSimpleResultListener extends nsISupports { + onValueRemoved(aResult: nsIAutoCompleteSimpleResult, aValue: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSimpleSearch.idl + +interface nsIAutoCompleteSimpleSearch extends nsIAutoCompleteSearch { + overrideNextResult(values: nsIAutoCompleteResult): void; +} + +// https://searchfox.org/mozilla-central/source/dom/media/autoplay/nsIAutoplay.idl + +interface nsIAutoplay extends nsISupports { + readonly ALLOWED: 0; + readonly BLOCKED: 1; + readonly BLOCKED_ALL: 5; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/backgroundhangmonitor/nsIHangDetails.idl + +interface nsIHangDetails extends nsISupports { + readonly wasPersisted: boolean; + readonly duration: double; + readonly thread: string; + readonly runnableName: string; + readonly process: string; + readonly remoteType: string; + readonly stack: any; + readonly modules: any; + readonly annotations: any; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/bitsdownload/nsIBits.idl + +interface nsIBits extends nsISupports { + readonly ERROR_TYPE_SUCCESS: 0; + readonly ERROR_TYPE_UNKNOWN: 1; + readonly ERROR_TYPE_METHOD_THREW: 2; + readonly ERROR_TYPE_METHOD_TIMEOUT: 3; + readonly ERROR_TYPE_NULL_ARGUMENT: 4; + readonly ERROR_TYPE_INVALID_ARGUMENT: 5; + readonly ERROR_TYPE_NOT_INITIALIZED: 6; + readonly ERROR_TYPE_NO_UTF8_CONVERSION: 7; + readonly ERROR_TYPE_INVALID_GUID: 8; + readonly ERROR_TYPE_PIPE_NOT_CONNECTED: 9; + readonly ERROR_TYPE_PIPE_TIMEOUT: 10; + readonly ERROR_TYPE_PIPE_BAD_WRITE_COUNT: 11; + readonly ERROR_TYPE_PIPE_API_ERROR: 12; + readonly ERROR_TYPE_FAILED_TO_CREATE_BITS_JOB: 13; + readonly ERROR_TYPE_FAILED_TO_ADD_FILE_TO_JOB: 14; + readonly ERROR_TYPE_FAILED_TO_APPLY_BITS_JOB_SETTINGS: 15; + readonly ERROR_TYPE_FAILED_TO_RESUME_BITS_JOB: 16; + readonly ERROR_TYPE_OTHER_BITS_ERROR: 17; + readonly ERROR_TYPE_OTHER_BITS_CLIENT_ERROR: 18; + readonly ERROR_TYPE_BITS_JOB_NOT_FOUND: 19; + readonly ERROR_TYPE_FAILED_TO_GET_BITS_JOB: 20; + readonly ERROR_TYPE_FAILED_TO_SUSPEND_BITS_JOB: 21; + readonly ERROR_TYPE_FAILED_TO_COMPLETE_BITS_JOB: 22; + readonly ERROR_TYPE_PARTIALLY_COMPLETED_BITS_JOB: 23; + readonly ERROR_TYPE_FAILED_TO_CANCEL_BITS_JOB: 24; + readonly ERROR_TYPE_MISSING_RESULT_DATA: 25; + readonly ERROR_TYPE_MISSING_CALLBACK: 26; + readonly ERROR_TYPE_CALLBACK_ON_WRONG_THREAD: 27; + readonly ERROR_TYPE_MISSING_BITS_SERVICE: 28; + readonly ERROR_TYPE_BITS_SERVICE_ON_WRONG_THREAD: 29; + readonly ERROR_TYPE_MISSING_BITS_REQUEST: 30; + readonly ERROR_TYPE_BITS_REQUEST_ON_WRONG_THREAD: 31; + readonly ERROR_TYPE_MISSING_OBSERVER: 32; + readonly ERROR_TYPE_OBSERVER_ON_WRONG_THREAD: 33; + readonly ERROR_TYPE_MISSING_CONTEXT: 34; + readonly ERROR_TYPE_CONTEXT_ON_WRONG_THREAD: 35; + readonly ERROR_TYPE_FAILED_TO_START_THREAD: 36; + readonly ERROR_TYPE_FAILED_TO_CONSTRUCT_TASK_RUNNABLE: 37; + readonly ERROR_TYPE_FAILED_TO_DISPATCH_RUNNABLE: 38; + readonly ERROR_TYPE_TRANSFER_ALREADY_COMPLETE: 39; + readonly ERROR_TYPE_OPERATION_ALREADY_IN_PROGRESS: 40; + readonly ERROR_TYPE_MISSING_BITS_CLIENT: 41; + readonly ERROR_TYPE_FAILED_TO_GET_JOB_STATUS: 42; + readonly ERROR_TYPE_BITS_STATE_ERROR: 43; + readonly ERROR_TYPE_BITS_STATE_TRANSIENT_ERROR: 44; + readonly ERROR_TYPE_BITS_STATE_CANCELLED: 45; + readonly ERROR_TYPE_BITS_STATE_UNEXPECTED: 46; + readonly ERROR_TYPE_VERIFICATION_FAILURE: 47; + readonly ERROR_TYPE_ACCESS_DENIED_EXPECTED: 48; + readonly ERROR_TYPE_FAILED_TO_CONNECT_TO_BCM: 49; + readonly ERROR_TYPE_USE_AFTER_REQUEST_SHUTDOWN: 50; + readonly ERROR_TYPE_BROWSER_SHUTTING_DOWN: 51; + readonly ERROR_ACTION_UNKNOWN: 1; + readonly ERROR_ACTION_NONE: 2; + readonly ERROR_ACTION_START_DOWNLOAD: 3; + readonly ERROR_ACTION_MONITOR_DOWNLOAD: 4; + readonly ERROR_ACTION_CHANGE_MONITOR_INTERVAL: 5; + readonly ERROR_ACTION_CANCEL: 6; + readonly ERROR_ACTION_SET_PRIORITY: 7; + readonly ERROR_ACTION_COMPLETE: 8; + readonly ERROR_ACTION_SUSPEND: 9; + readonly ERROR_ACTION_RESUME: 10; + readonly ERROR_ACTION_SET_NO_PROGRESS_TIMEOUT: 11; + readonly ERROR_STAGE_UNKNOWN: 1; + readonly ERROR_STAGE_PRETASK: 2; + readonly ERROR_STAGE_COMMAND_THREAD: 3; + readonly ERROR_STAGE_AGENT_COMMUNICATION: 4; + readonly ERROR_STAGE_BITS_CLIENT: 5; + readonly ERROR_STAGE_MAIN_THREAD: 6; + readonly ERROR_STAGE_MONITOR: 7; + readonly ERROR_STAGE_VERIFICATION: 8; + readonly ERROR_CODE_TYPE_NONE: 1; + readonly ERROR_CODE_TYPE_NSRESULT: 2; + readonly ERROR_CODE_TYPE_HRESULT: 3; + readonly ERROR_CODE_TYPE_STRING: 4; + readonly ERROR_CODE_TYPE_EXCEPTION: 5; + readonly PROXY_NONE: 1; + readonly PROXY_PRECONFIG: 2; + readonly PROXY_AUTODETECT: 3; + + readonly initialized: boolean; + init(jobName: string, savePathPrefix: string, monitorTimeoutMs: u32): void; + startDownload(downloadURL: string, saveRelativePath: string, proxy: nsProxyUsage, noProgressTimeoutSecs: u32, monitorIntervalMs: u32, observer: nsIRequestObserver, context: nsISupports, callback: nsIBitsNewRequestCallback): void; + monitorDownload(id: string, monitorIntervalMs: u32, observer: nsIRequestObserver, context: nsISupports, callback: nsIBitsNewRequestCallback): void; +} + +interface nsIBitsNewRequestCallback extends nsISupports { + success(request: nsIBitsRequest): void; + failure(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage): void; + failureNsresult(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorCode: nsresult): void; + failureHresult(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorCode: i32): void; + failureString(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorMessage: string): void; +} + +interface nsIBitsRequest extends nsIRequest { + readonly bitsId: string; + readonly transferError: nsBitsErrorType; + changeMonitorInterval(monitorIntervalMs: u32, callback: nsIBitsCallback): void; + cancelAsync(status: nsresult, callback: nsIBitsCallback): void; + setPriorityHigh(callback: nsIBitsCallback): void; + setPriorityLow(callback: nsIBitsCallback): void; + setNoProgressTimeout(timeoutSecs: u32, callback: nsIBitsCallback): void; + complete(callback: nsIBitsCallback): void; + suspendAsync(callback: nsIBitsCallback): void; + resumeAsync(callback: nsIBitsCallback): void; +} + +interface nsIBitsCallback extends nsISupports { + success(): void; + failure(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage): void; + failureNsresult(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorCode: nsresult): void; + failureHresult(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorCode: i32): void; + failureString(errorType: nsBitsErrorType, errorAction: nsBitsErrorAction, errorStage: nsBitsErrorStage, errorMessage: string): void; +} + +// https://searchfox.org/mozilla-central/source/browser/components/newtab/nsIAboutNewTabService.idl + +interface nsIAboutNewTabService extends nsISupports { + readonly defaultURL: string; + aboutHomeChannel(aURI: nsIURI, aLoadInfo: nsILoadInfo): nsIChannel; + readonly welcomeURL: string; +} + +// https://searchfox.org/mozilla-central/source/browser/components/nsIBrowserHandler.idl + +interface nsIBrowserHandler extends nsISupports { + startPage: string; + defaultArgs: string; + kiosk: boolean; + majorUpgrade: boolean; + firstRunProfile: boolean; + getFeatures(aCmdLine: nsICommandLine): string; +} + +// https://searchfox.org/mozilla-central/source/caps/nsIAddonPolicyService.idl + +interface nsIAddonPolicyService extends nsISupports { + readonly defaultCSP: string; + readonly defaultCSPV3: string; + getBaseCSP(aAddonId: string): string; + getExtensionPageCSP(aAddonId: string): string; + getGeneratedBackgroundPageUrl(aAddonId: string): string; + addonHasPermission(aAddonId: string, aPerm: string): boolean; + addonMayLoadURI(aAddonId: string, aURI: nsIURI, aExplicit?: boolean): boolean; + getExtensionName(aAddonId: string): string; + sourceMayLoadExtensionURI(aSourceURI: nsIURI, aExtensionURI: nsIURI): boolean; + extensionURIToAddonId(aURI: nsIURI): string; +} + +interface nsIAddonContentPolicy extends nsISupports { + readonly CSP_ALLOW_ANY: 65535; + readonly CSP_ALLOW_LOCALHOST: 1; + readonly CSP_ALLOW_EVAL: 2; + readonly CSP_ALLOW_REMOTE: 4; + readonly CSP_ALLOW_WASM: 8; + + validateAddonCSP(aPolicyString: string, aPermittedPolicy: u32): string; +} + +// https://searchfox.org/mozilla-central/source/caps/nsIDomainPolicy.idl + +interface nsIDomainPolicy extends nsISupports { + readonly blocklist: nsIDomainSet; + readonly superBlocklist: nsIDomainSet; + readonly allowlist: nsIDomainSet; + readonly superAllowlist: nsIDomainSet; + deactivate(): void; +} + +interface nsIDomainSet extends nsISupports { + add(aDomain: nsIURI): void; + remove(aDomain: nsIURI): void; + clear(): void; + contains(aDomain: nsIURI): boolean; + containsSuperDomain(aDomain: nsIURI): boolean; +} + +// https://searchfox.org/mozilla-central/source/caps/nsIPrincipal.idl + +interface nsIPrincipal extends nsISupports { + equals(other: nsIPrincipal): boolean; + equalsForPermission(other: nsIPrincipal, aExactHost: boolean): boolean; + equalsConsideringDomain(other: nsIPrincipal): boolean; + equalsURI(aOtherURI: nsIURI): boolean; + readonly URI: nsIURI; + subsumes(other: nsIPrincipal): boolean; + subsumesConsideringDomain(other: nsIPrincipal): boolean; + subsumesConsideringDomainIgnoringFPD(other: nsIPrincipal): boolean; + checkMayLoad(uri: nsIURI, allowIfInheritsPrincipal: boolean): void; + checkMayLoadWithReporting(uri: nsIURI, allowIfInheritsPrincipal: boolean, innerWindowID: u64): void; + isThirdPartyURI(uri: nsIURI): boolean; + isThirdPartyPrincipal(principal: nsIPrincipal): boolean; + isThirdPartyChannel(channel: nsIChannel): boolean; + readonly originAttributes: any; + readonly origin: string; + readonly hostPort: string; + readonly asciiHost: string; + readonly host: string; + readonly prePath: string; + readonly filePath: string; + readonly asciiSpec: string; + readonly spec: string; + readonly exposablePrePath: string; + readonly exposableSpec: string; + readonly scheme: string; + schemeIs(scheme: string): boolean; + isURIInPrefList(pref: string): boolean; + isURIInList(list: string): boolean; + isContentAccessibleAboutURI(): boolean; + isSameOrigin(otherURI: nsIURI): boolean; + allowsRelaxStrictFileOriginPolicy(aURI: nsIURI): boolean; + hasFirstpartyStorageAccess(aWindow: mozIDOMWindow, rejectedReason: OutParam<u32>): boolean; + readonly localStorageQuotaKey: string; + readonly isOriginPotentiallyTrustworthy: boolean; + readonly isLoopbackHost: boolean; + getAboutModuleFlags(): u32; + readonly storageOriginKey: string; + readonly originNoSuffix: string; + readonly originSuffix: string; + readonly siteOrigin: string; + readonly siteOriginNoSuffix: string; + readonly baseDomain: string; + readonly addonId: string; + readonly addonPolicy: WebExtensionPolicy; + readonly contentScriptAddonPolicy: WebExtensionPolicy; + readonly userContextId: u32; + readonly privateBrowsingId: u32; + readonly isNullPrincipal: boolean; + readonly isContentPrincipal: boolean; + readonly isExpandedPrincipal: boolean; + readonly isSystemPrincipal: boolean; + readonly isAddonOrExpandedAddonPrincipal: boolean; + readonly isOnion: boolean; + readonly isScriptAllowedByPolicy: boolean; + isL10nAllowed(aDocumentURI: nsIURI): boolean; + readonly nextSubDomainPrincipal: nsIPrincipal; + readonly isIpAddress: boolean; + readonly isLocalIpAddress: boolean; + readonly precursorPrincipal: nsIPrincipal; +} + +// https://searchfox.org/mozilla-central/source/caps/nsIScriptSecurityManager.idl + +interface nsIScriptSecurityManager extends nsISupports { + readonly STANDARD: 0; + readonly LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT: 1; + readonly ALLOW_CHROME: 2; + readonly DISALLOW_INHERIT_PRINCIPAL: 4; + readonly DISALLOW_SCRIPT_OR_DATA: 4; + readonly DISALLOW_SCRIPT: 8; + readonly DONT_REPORT_ERRORS: 16; + readonly DEFAULT_USER_CONTEXT_ID: 0; + readonly DEFAULT_PRIVATE_BROWSING_ID: 0; + + checkLoadURIWithPrincipalXPCOM(aPrincipal: nsIPrincipal, uri: nsIURI, flags: u32, innerWindowID?: u64): void; + checkLoadURIWithPrincipal(aPrincipal: nsIPrincipal, uri: nsIURI, flags?: u32, innerWindowID?: u64): void; + checkLoadURIStrWithPrincipalXPCOM(aPrincipal: nsIPrincipal, uri: string, flags: u32): void; + checkLoadURIStrWithPrincipal(aPrincipal: nsIPrincipal, uri: string, flags?: u32): void; + inFileURIAllowlist(aUri: nsIURI): boolean; + getSystemPrincipal(): nsIPrincipal; + getLoadContextContentPrincipal(uri: nsIURI, loadContext: nsILoadContext): nsIPrincipal; + getDocShellContentPrincipal(uri: nsIURI, docShell: nsIDocShell): nsIPrincipal; + principalWithOA(principal: nsIPrincipal, originAttributes: any): nsIPrincipal; + createContentPrincipal(uri: nsIURI, originAttributes: any): nsIPrincipal; + createContentPrincipalFromOrigin(origin: string): nsIPrincipal; + principalToJSON(principal: nsIPrincipal): string; + JSONToPrincipal(json: string): nsIPrincipal; + createNullPrincipal(originAttributes: any): nsIPrincipal; + checkSameOriginURI(aSourceURI: nsIURI, aTargetURI: nsIURI, reportError: boolean, fromPrivateWindow: boolean): void; + getChannelResultPrincipal(aChannel: nsIChannel): nsIPrincipal; + getChannelResultStoragePrincipal(aChannel: nsIChannel): nsIPrincipal; + getChannelResultPrincipals(aChannel: nsIChannel, aPrincipal: OutParam<nsIPrincipal>, aPartitionedPrincipal: OutParam<nsIPrincipal>): void; + getChannelURIPrincipal(aChannel: nsIChannel): nsIPrincipal; + activateDomainPolicy(): nsIDomainPolicy; + readonly domainPolicyActive: boolean; + policyAllowsScript(aDomain: nsIURI): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/captivedetect/nsICaptivePortalDetector.idl + +interface nsICaptivePortalCallback extends nsISupports { + prepare(): void; + complete(success: boolean): void; +} + +interface nsICaptivePortalDetector extends nsISupports { + checkCaptivePortal(ifname: string, callback: nsICaptivePortalCallback): void; + abort(ifname: string): void; + cancelLogin(eventId: string): void; + finishPreparation(ifname: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/cascade_bloom_filter/nsICascadeFilter.idl + +interface nsICascadeFilter extends nsISupports { + setFilterData(data: u8[]): void; + has(key: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/chrome/nsIChromeRegistry.idl + +interface nsIChromeRegistry extends nsISupports { + readonly NONE: 0; + readonly PARTIAL: 1; + readonly FULL: 2; + + convertChromeURL(aChromeURL: nsIURI): nsIURI; + checkForNewChrome(): void; +} + +interface nsIXULChromeRegistry extends nsIChromeRegistry { + isLocaleRTL(package: string): boolean; + allowScriptsForPackage(url: nsIURI): boolean; + allowContentToAccess(url: nsIURI): boolean; + canLoadURLRemotely(url: nsIURI): boolean; + mustLoadURLRemotely(url: nsIURI): boolean; +} + +// https://searchfox.org/mozilla-central/source/chrome/nsIToolkitChromeRegistry.idl + +interface nsIToolkitChromeRegistry extends nsIXULChromeRegistry { + getLocalesForPackage(aPackage: string): nsIUTF8StringEnumerator; +} + +// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsICommandManager.idl + +interface nsICommandManager extends nsISupports { + addCommandObserver(aCommandObserver: nsIObserver, aCommandToObserve: string): void; + removeCommandObserver(aCommandObserver: nsIObserver, aCommandObserved: string): void; + isCommandSupported(aCommandName: string, aTargetWindow: mozIDOMWindowProxy): boolean; + isCommandEnabled(aCommandName: string, aTargetWindow: mozIDOMWindowProxy): boolean; + getCommandState(aCommandName: string, aTargetWindow: mozIDOMWindowProxy, aCommandParams: nsICommandParams): void; + doCommand(aCommandName: string, aCommandParams: nsICommandParams, aTargetWindow: mozIDOMWindowProxy): void; +} + +// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsICommandParams.idl + +interface nsICommandParams extends nsISupports { + readonly eNoType: 0; + readonly eBooleanType: 1; + readonly eLongType: 2; + readonly eDoubleType: 3; + readonly eWStringType: 4; + readonly eISupportsType: 5; + readonly eStringType: 6; + + getValueType(name: string): i16; + getBooleanValue(name: string): boolean; + getLongValue(name: string): i32; + getDoubleValue(name: string): double; + getStringValue(name: string): string; + getCStringValue(name: string): string; + getISupportsValue(name: string): nsISupports; + setBooleanValue(name: string, value: boolean): void; + setLongValue(name: string, value: i32): void; + setDoubleValue(name: string, value: double): void; + setStringValue(name: string, value: string): void; + setCStringValue(name: string, value: string): void; + setISupportsValue(name: string, value: nsISupports): void; + removeValue(name: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsIControllerCommand.idl + +interface nsIControllerCommand extends nsISupports { + isCommandEnabled(aCommandName: string, aCommandContext: nsISupports): boolean; + getCommandStateParams(aCommandName: string, aParams: nsICommandParams, aCommandContext: nsISupports): void; + doCommand(aCommandName: string, aCommandContext: nsISupports): void; + doCommandParams(aCommandName: string, aParams: nsICommandParams, aCommandContext: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsIControllerCommandTable.idl + +interface nsIControllerCommandTable extends nsISupports { + makeImmutable(): void; + registerCommand(aCommandName: string, aCommand: nsIControllerCommand): void; + unregisterCommand(aCommandName: string, aCommand: nsIControllerCommand): void; + findCommandHandler(aCommandName: string): nsIControllerCommand; + isCommandEnabled(aCommandName: string, aCommandRefCon: nsISupports): boolean; + updateCommandState(aCommandName: string, aCommandRefCon: nsISupports): void; + supportsCommand(aCommandName: string, aCommandRefCon: nsISupports): boolean; + doCommand(aCommandName: string, aCommandRefCon: nsISupports): void; + doCommandParams(aCommandName: string, aParam: nsICommandParams, aCommandRefCon: nsISupports): void; + getCommandState(aCommandName: string, aParam: nsICommandParams, aCommandRefCon: nsISupports): void; + getSupportedCommands(): string[]; +} + +// https://searchfox.org/mozilla-central/source/dom/commandhandler/nsIControllerContext.idl + +interface nsIControllerContext extends nsISupports { + setCommandContext(aCommandContext: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLine.idl + +interface nsICommandLine extends nsISupports { + readonly STATE_INITIAL_LAUNCH: 0; + readonly STATE_REMOTE_AUTO: 1; + readonly STATE_REMOTE_EXPLICIT: 2; + + readonly length: i32; + getArgument(aIndex: i32): string; + findFlag(aFlag: string, aCaseSensitive: boolean): i32; + removeArguments(aStart: i32, aEnd: i32): void; + handleFlag(aFlag: string, aCaseSensitive: boolean): boolean; + handleFlagWithParam(aFlag: string, aCaseSensitive: boolean): string; + readonly state: u32; + preventDefault: boolean; + readonly workingDirectory: nsIFile; + resolveFile(aArgument: string): nsIFile; + resolveURI(aArgument: string): nsIURI; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineHandler.idl + +interface nsICommandLineHandler extends nsISupports { + handle(aCommandLine: nsICommandLine): void; + readonly helpInfo: string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineRunner.idl + +// https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineValidator.idl + +interface nsICommandLineValidator extends nsISupports { + validate(aCommandLine: nsICommandLine): void; +} + +// https://searchfox.org/mozilla-central/source/editor/composer/nsIEditingSession.idl + +interface nsIEditingSession extends nsISupports { + readonly eEditorOK: 0; + readonly eEditorCreationInProgress: 1; + readonly eEditorErrorCantEditMimeType: 2; + readonly eEditorErrorFileNotFound: 3; + readonly eEditorErrorCantEditFramesets: 8; + readonly eEditorErrorUnknown: 9; + + readonly editorStatus: u32; + makeWindowEditable(window: mozIDOMWindowProxy, aEditorType: string, doAfterUriLoad: boolean, aMakeWholeDocumentEditable: boolean, aInteractive: boolean): void; + windowIsEditable(window: mozIDOMWindowProxy): boolean; + getEditorForWindow(window: mozIDOMWindowProxy): nsIEditor; +} + +// https://searchfox.org/mozilla-central/source/dom/events/nsIEventListenerService.idl + +interface nsIEventListenerChange extends nsISupports { + readonly target: EventTarget; +} + +type nsIListenerChangeListener = Callable<{ + listenersChanged(aEventListenerChanges: nsIArray): void; +}> + +interface nsIEventListenerInfo extends nsISupports { + readonly type: string; + readonly capturing: boolean; + readonly allowsUntrusted: boolean; + readonly inSystemEventGroup: boolean; + enabled: boolean; + readonly listenerObject: any; + toSource(): string; +} + +interface nsIEventListenerService extends nsISupports { + getListenerInfoFor(aEventTarget: EventTarget): nsIEventListenerInfo[]; + hasListenersFor(aEventTarget: EventTarget, aType: string): boolean; + addListenerForAllEvents(target: EventTarget, listener: any, aUseCapture?: boolean, aWantsUntrusted?: boolean, aSystemEventGroup?: boolean): void; + removeListenerForAllEvents(target: EventTarget, listener: any, aUseCapture?: boolean, aSystemEventGroup?: boolean): void; + addListenerChangeListener(aListener: nsIListenerChangeListener): void; + removeListenerChangeListener(aListener: nsIListenerChangeListener): void; +} + +// https://searchfox.org/mozilla-central/source/dom/media/gmp/mozIGeckoMediaPluginChromeService.idl + +interface mozIGeckoMediaPluginChromeService extends nsISupports { + addPluginDirectory(directory: string): void; + removePluginDirectory(directory: string): void; + removeAndDeletePluginDirectory(directory: string, defer?: boolean): void; + forgetThisSite(site: string, aPattern: string): void; + forgetThisBaseDomain(baseDomain: string): void; + isPersistentStorageAllowed(nodeId: string): boolean; + getStorageDir(): nsIFile; +} + +// https://searchfox.org/mozilla-central/source/dom/media/gmp/mozIGeckoMediaPluginService.idl + +interface mozIGeckoMediaPluginService extends nsISupports { + readonly thread: nsIThread; + RunPluginCrashCallbacks(pluginId: u32, pluginName: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/mozapps/defaultagent/nsIDefaultAgent.idl + +interface nsIDefaultAgent extends nsISupports { + registerTask(aUniqueToken: string): void; + updateTask(aUniqueToken: string): void; + unregisterTask(aUniqueToken: string): void; + uninstall(aUniqueToken: string): void; + appRanRecently(): boolean; + getDefaultBrowser(): string; + getReplacePreviousDefaultBrowser(aCurrentBrowser: string): string; + getDefaultPdfHandler(): string; + sendPing(aCurrentBrowser: string, aPreviousBrowser: string, aPdfHandler: string, aNotificationShown: string, aNotificationAction: string): void; + setDefaultBrowserUserChoice(aAumid: string, aExtraFileExtensions: string[]): void; + setDefaultBrowserUserChoiceAsync(aAumid: string, aExtraFileExtensions: string[]): Promise<any>; + setDefaultExtensionHandlersUserChoice(aAumid: string, aFileExtensions: string[]): void; + agentDisabled(): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/mozapps/defaultagent/nsIWindowsMutex.idl + +interface nsIWindowsMutex extends nsISupports { + tryLock(): void; + isLocked(): boolean; + unlock(): void; +} + +interface nsIWindowsMutexFactory extends nsISupports { + createMutex(aName: string): nsIWindowsMutex; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShell.idl + +} // global + +declare namespace nsIDocShell { + +enum DocShellEnumeratorDirection { + ENUMERATE_FORWARDS = 0, + ENUMERATE_BACKWARDS = 1, +} + +enum AppType { + APP_TYPE_UNKNOWN = 0, + APP_TYPE_MAIL = 1, + APP_TYPE_EDITOR = 2, +} + +enum BusyFlags { + BUSY_FLAGS_NONE = 0, + BUSY_FLAGS_BUSY = 1, + BUSY_FLAGS_BEFORE_PAGE_LOAD = 2, + BUSY_FLAGS_PAGE_LOADING = 4, +} + +enum LoadCommand { + LOAD_CMD_NORMAL = 1, + LOAD_CMD_RELOAD = 2, + LOAD_CMD_HISTORY = 4, + LOAD_CMD_PUSHSTATE = 8, +} + +enum MetaViewportOverride { + META_VIEWPORT_OVERRIDE_DISABLED = 0, + META_VIEWPORT_OVERRIDE_ENABLED = 1, + META_VIEWPORT_OVERRIDE_NONE = 2, +} + +} + +declare global { + +interface nsIDocShell extends nsIDocShellTreeItem, Enums<typeof nsIDocShell.DocShellEnumeratorDirection & typeof nsIDocShell.AppType & typeof nsIDocShell.BusyFlags & typeof nsIDocShell.LoadCommand & typeof nsIDocShell.MetaViewportOverride> { + setCancelContentJSEpoch(aEpoch: i32): void; + addState(aData: any, aTitle: string, aURL: string, aReplace: boolean): void; + prepareForNewContentModel(): void; + setCurrentURIForSessionStore(aURI: nsIURI): void; + readonly docViewer: nsIDocumentViewer; + readonly outerWindowID: u64; + chromeEventHandler: EventTarget; + customUserAgent: string; + cssErrorReportingEnabled: boolean; + allowMetaRedirects: boolean; + allowSubframes: boolean; + allowImages: boolean; + allowMedia: boolean; + allowDNSPrefetch: boolean; + allowWindowControl: boolean; + allowContentRetargeting: boolean; + allowContentRetargetingOnChildren: boolean; + getAllDocShellsInSubtree(aItemType: i32, aDirection: nsIDocShell.DocShellEnumeratorDirection): nsIDocShell[]; + appType: nsIDocShell.AppType; + allowAuth: boolean; + zoom: float; + tabToTreeOwner(forward: boolean, forDocumentNavigation: boolean): boolean; + readonly busyFlags: nsIDocShell.BusyFlags; + loadType: u32; + defaultLoadFlags: nsLoadFlags; + isBeingDestroyed(): boolean; + readonly isExecutingOnLoadHandler: boolean; + layoutHistoryState: nsILayoutHistoryState; + readonly loadURIDelegate: nsILoadURIDelegate; + suspendRefreshURIs(): void; + resumeRefreshURIs(): void; + beginRestore(viewer: nsIDocumentViewer, top: boolean): void; + finishRestore(): void; + clearCachedUserAgent(): void; + clearCachedPlatform(): void; + readonly restoringDocument: boolean; + useErrorPages: boolean; + displayLoadError(aError: nsresult, aURI: nsIURI, aURL: string, aFailedChannel?: nsIChannel): boolean; + readonly failedChannel: nsIChannel; + readonly previousEntryIndex: i32; + readonly loadedEntryIndex: i32; + historyPurged(numEntries: i32): void; + readonly currentDocumentChannel: nsIChannel; + readonly isInUnload: boolean; + exitPrintPreview(): void; + readonly historyID: nsID; + createAboutBlankDocumentViewer(aPrincipal: nsIPrincipal, aPartitionedPrincipal: nsIPrincipal, aCSP?: nsIContentSecurityPolicy): void; + readonly charset: string; + forceEncodingDetection(): void; + now(): DOMHighResTimeStamp; + addWeakPrivacyTransitionObserver(obs: nsIPrivacyTransitionObserver): void; + addWeakReflowObserver(obs: nsIReflowObserver): void; + removeWeakReflowObserver(obs: nsIReflowObserver): void; + readonly isTopLevelContentDocShell: boolean; + readonly asyncPanZoomEnabled: boolean; + readonly mayEnableCharacterEncodingMenu: boolean; + editor: nsIEditor; + readonly editable: boolean; + readonly hasEditingSession: boolean; + makeEditable(inWaitForUriLoad: boolean): void; + getCurrentSHEntry(aEntry: OutParam<nsISHEntry>): boolean; + isCommandEnabled(command: string): boolean; + doCommand(command: string): void; + doCommandWithParams(command: string, aParams: nsICommandParams): void; + readonly hasLoadedNonBlankURI: boolean; + windowDraggingAllowed: boolean; + currentScrollRestorationIsManual: boolean; + getOriginAttributes(): any; + setOriginAttributes(aAttrs: any): void; + readonly editingSession: nsIEditingSession; + readonly browserChild: nsIBrowserChild; + metaViewportOverride: nsIDocShell.MetaViewportOverride; + useTrackingProtection: boolean; + setColorMatrix(aMatrix: float[]): void; + readonly isForceReloading: boolean; + getColorMatrix(): float[]; + readonly messageManager: ContentFrameMessageManager; + getHasTrackingContentBlocked(): Promise<any>; + readonly isNavigating: boolean; + synchronizeLayoutHistoryState(): void; + persistLayoutHistoryState(): void; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShellTreeItem.idl + +interface nsIDocShellTreeItem extends nsISupports { + readonly typeChrome: 0; + readonly typeContent: 1; + readonly typeContentWrapper: 2; + readonly typeChromeWrapper: 3; + readonly typeAll: 2147483647; + + name: string; + nameEquals(name: string): boolean; + readonly itemType: i32; + readonly parent: nsIDocShellTreeItem; + readonly sameTypeParent: nsIDocShellTreeItem; + readonly rootTreeItem: nsIDocShellTreeItem; + readonly sameTypeRootTreeItem: nsIDocShellTreeItem; + readonly treeOwner: nsIDocShellTreeOwner; + readonly childCount: i32; + getChildAt(index: i32): nsIDocShellTreeItem; + readonly browsingContext: BrowsingContext; + readonly domWindow: mozIDOMWindowProxy; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShellTreeOwner.idl + +interface nsIDocShellTreeOwner extends nsISupports { + contentShellAdded(aContentShell: nsIDocShellTreeItem, aPrimary: boolean): void; + contentShellRemoved(aContentShell: nsIDocShellTreeItem): void; + readonly primaryContentShell: nsIDocShellTreeItem; + remoteTabAdded(aTab: nsIRemoteTab, aPrimary: boolean): void; + remoteTabRemoved(aTab: nsIRemoteTab): void; + readonly primaryRemoteTab: nsIRemoteTab; + readonly primaryContentBrowsingContext: BrowsingContext; + sizeShellTo(shell: nsIDocShellTreeItem, cx: i32, cy: i32): void; + getPrimaryContentSize(width: OutParam<i32>, height: OutParam<i32>): void; + setPrimaryContentSize(width: i32, height: i32): void; + getRootShellSize(width: OutParam<i32>, height: OutParam<i32>): void; + setRootShellSize(width: i32, height: i32): void; + setPersistence(aPersistPosition: boolean, aPersistSize: boolean, aPersistSizeMode: boolean): void; + getPersistence(aPersistPosition: OutParam<boolean>, aPersistSize: OutParam<boolean>, aPersistSizeMode: OutParam<boolean>): void; + readonly tabCount: u32; + readonly hasPrimaryContent: boolean; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentLoaderFactory.idl + +interface nsIDocumentLoaderFactory extends nsISupports { + createInstance(aCommand: string, aChannel: nsIChannel, aLoadGroup: nsILoadGroup, aContentType: string, aContainer: nsIDocShell, aExtraInfo: nsISupports, aDocListenerResult: OutParam<nsIStreamListener>): nsIDocumentViewer; + createInstanceForDocument(aContainer: nsISupports, aDocument: Document, aCommand: string): nsIDocumentViewer; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentViewer.idl + +} // global + +declare namespace nsIDocumentViewer { + +enum PermitUnloadAction { + ePrompt = 0, + eDontPromptAndDontUnload = 1, + eDontPromptAndUnload = 2, +} + +enum PermitUnloadResult { + eAllowNavigation = 0, + eRequestBlockNavigation = 1, +} + +} + +declare global { + +interface nsIDocumentViewer extends nsISupports, Enums<typeof nsIDocumentViewer.PermitUnloadAction & typeof nsIDocumentViewer.PermitUnloadResult> { + readonly eDelayResize: 1; + + container: nsIDocShell; + loadComplete(aStatus: nsresult): void; + permitUnload(aAction?: nsIDocumentViewer.PermitUnloadAction): boolean; + readonly inPermitUnload: boolean; + readonly beforeUnloadFiring: boolean; + pageHide(isUnload: boolean): void; + close(historyEntry: nsISHEntry): void; + destroy(): void; + stop(): void; + readonly DOMDocument: Document; + move(aX: i32, aY: i32): void; + show(): void; + hide(): void; + sticky: boolean; + open(aState: nsISupports, aSHEntry: nsISHEntry): void; + clearHistoryEntry(): void; + setPageModeForTesting(aPageMode: boolean, aPrintSettings: nsIPrintSettings): void; + readonly historyEntry: nsISHEntry; + readonly isTabModalPromptAllowed: boolean; + isHidden: boolean; + readonly deviceFullZoomForTest: float; + authorStyleDisabled: boolean; + getContentSize(maxWidth: i32, maxHeight: i32, prefWidth: i32, width: OutParam<i32>, height: OutParam<i32>): void; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentViewerEdit.idl + +interface nsIDocumentViewerEdit extends nsISupports { + readonly COPY_IMAGE_TEXT: 1; + readonly COPY_IMAGE_HTML: 2; + readonly COPY_IMAGE_DATA: 4; + readonly COPY_IMAGE_ALL: -1; + + clearSelection(): void; + selectAll(): void; + copySelection(): void; + readonly copyable: boolean; + copyLinkLocation(): void; + readonly inLink: boolean; + copyImage(aCopyFlags: i32): void; + readonly inImage: boolean; + getContents(aMimeType: string, aSelectionOnly: boolean): string; + readonly canGetContents: boolean; + setCommandNode(aNode: Node): void; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsILoadContext.idl + +interface nsILoadContext extends nsISupports { + readonly associatedWindow: mozIDOMWindowProxy; + readonly topWindow: mozIDOMWindowProxy; + readonly topFrameElement: Element; + readonly isContent: boolean; + usePrivateBrowsing: boolean; + readonly useRemoteTabs: boolean; + readonly useRemoteSubframes: boolean; + useTrackingProtection: boolean; + readonly originAttributes: any; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsILoadURIDelegate.idl + +interface nsILoadURIDelegate extends nsISupports { + handleLoadError(aURI: nsIURI, aError: nsresult, aErrorModule: i16): nsIURI; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIPrivacyTransitionObserver.idl + +type nsIPrivacyTransitionObserver = Callable<{ + privateModeChanged(enabled: boolean): void; +}> + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIReflowObserver.idl + +interface nsIReflowObserver extends nsISupports { + reflow(start: DOMHighResTimeStamp, end: DOMHighResTimeStamp): void; + reflowInterruptible(start: DOMHighResTimeStamp, end: DOMHighResTimeStamp): void; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIRefreshURI.idl + +interface nsIRefreshURI extends nsISupports { + refreshURI(aURI: nsIURI, aPrincipal: nsIPrincipal, aMillis: u32): void; + forceRefreshURI(aURI: nsIURI, aPrincipal: nsIPrincipal, aMillis: u32): void; + cancelRefreshURITimers(): void; + readonly refreshPending: boolean; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsITooltipListener.idl + +interface nsITooltipListener extends nsISupports { + onShowTooltip(aXCoords: i32, aYCoords: i32, aTipText: string, aTipDir: string): void; + onHideTooltip(): void; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsITooltipTextProvider.idl + +interface nsITooltipTextProvider extends nsISupports { + getNodeText(aNode: Node, aText: OutParam<string>, aDirection: OutParam<string>): boolean; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIURIFixup.idl + +interface nsIURIFixupInfo extends nsISupports { + consumer: BrowsingContext; + preferredURI: nsIURI; + fixedURI: nsIURI; + keywordProviderName: string; + keywordAsSent: string; + wasSchemelessInput: boolean; + fixupChangedProtocol: boolean; + fixupCreatedAlternateURI: boolean; + originalInput: string; + postData: nsIInputStream; +} + +interface nsIURIFixup extends nsISupports { + readonly FIXUP_FLAG_NONE: 0; + readonly FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP: 1; + readonly FIXUP_FLAGS_MAKE_ALTERNATE_URI: 2; + readonly FIXUP_FLAG_PRIVATE_CONTEXT: 4; + readonly FIXUP_FLAG_FIX_SCHEME_TYPOS: 8; + + getFixupURIInfo(aURIText: string, aFixupFlags?: u32): nsIURIFixupInfo; + webNavigationFlagsToFixupFlags(aURIText: string, aDocShellFlags: u32): u32; + keywordToURI(aKeyword: string, aIsPrivateContext?: boolean): nsIURIFixupInfo; + forceHttpFixup(aUriString: string): nsIURIFixupInfo; + checkHost(aURI: nsIURI, aListener: nsIDNSListener, aOriginAttributes?: any): void; + isDomainKnown(aDomain: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl + +interface nsIWebNavigation extends nsISupports { + readonly LOAD_FLAGS_MASK: 65535; + readonly LOAD_FLAGS_NONE: 0; + readonly LOAD_FLAGS_IS_REFRESH: 16; + readonly LOAD_FLAGS_IS_LINK: 32; + readonly LOAD_FLAGS_BYPASS_HISTORY: 64; + readonly LOAD_FLAGS_REPLACE_HISTORY: 128; + readonly LOAD_FLAGS_BYPASS_CACHE: 256; + readonly LOAD_FLAGS_BYPASS_PROXY: 512; + readonly LOAD_FLAGS_CHARSET_CHANGE: 1024; + readonly LOAD_FLAGS_STOP_CONTENT: 2048; + readonly LOAD_FLAGS_FROM_EXTERNAL: 4096; + readonly LOAD_FLAGS_FIRST_LOAD: 16384; + readonly LOAD_FLAGS_ALLOW_POPUPS: 32768; + readonly LOAD_FLAGS_BYPASS_CLASSIFIER: 65536; + readonly LOAD_FLAGS_FORCE_ALLOW_COOKIES: 131072; + readonly LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL: 262144; + readonly LOAD_FLAGS_ERROR_LOAD_CHANGES_RV: 524288; + readonly LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP: 1048576; + readonly LOAD_FLAGS_FIXUP_SCHEME_TYPOS: 2097152; + readonly LOAD_FLAGS_FORCE_ALLOW_DATA_URI: 4194304; + readonly LOAD_FLAGS_IS_REDIRECT: 8388608; + readonly LOAD_FLAGS_DISABLE_TRR: 16777216; + readonly LOAD_FLAGS_FORCE_TRR: 33554432; + readonly LOAD_FLAGS_BYPASS_LOAD_URI_DELEGATE: 67108864; + readonly LOAD_FLAGS_USER_ACTIVATION: 134217728; + readonly STOP_NETWORK: 1; + readonly STOP_CONTENT: 2; + readonly STOP_ALL: 3; + + readonly canGoBack: boolean; + readonly canGoForward: boolean; + goBack(aRequireUserInteraction?: boolean, aUserActivation?: boolean): void; + goForward(aRequireUserInteraction?: boolean, aUserActivation?: boolean): void; + gotoIndex(index: i32, aUserActivation?: boolean): void; + loadURI(aURI: nsIURI, aLoadURIOptions: any): void; + fixupAndLoadURIString(aURIString: string, aLoadURIOptions: any): void; + reload(aReloadFlags: u32): void; + stop(aStopFlags: u32): void; + readonly document: Document; + readonly currentURI: nsIURI; + readonly sessionHistory: nsISupports; + resumeRedirectedLoad(aLoadIdentifier: u64, aHistoryIndex: i32): void; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIWebNavigationInfo.idl + +interface nsIWebNavigationInfo extends nsISupports { + readonly UNSUPPORTED: 0; + readonly IMAGE: 1; + readonly FALLBACK: 2; + readonly OTHER: 32768; + + isTypeSupported(aType: string): u32; +} + +// https://searchfox.org/mozilla-central/source/docshell/base/nsIWebPageDescriptor.idl + +interface nsIWebPageDescriptor extends nsISupports { + loadPageAsViewSource(otherDocShell: nsIDocShell, aURL: string): void; + readonly currentDescriptor: nsISupports; +} + +// https://searchfox.org/mozilla-central/source/dom/base/mozIDOMWindow.idl + +interface mozIDOMWindow extends nsISupports { +} + +interface mozIDOMWindowProxy extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsIContentPolicy.idl + +} // global + +declare namespace nsIContentPolicy { + +enum nsContentPolicyType { + TYPE_INVALID = 0, + TYPE_OTHER = 1, + TYPE_SCRIPT = 2, + TYPE_IMAGE = 3, + TYPE_STYLESHEET = 4, + TYPE_OBJECT = 5, + TYPE_DOCUMENT = 6, + TYPE_SUBDOCUMENT = 7, + TYPE_PING = 10, + TYPE_XMLHTTPREQUEST = 11, + TYPE_OBJECT_SUBREQUEST = 12, + TYPE_DTD = 13, + TYPE_FONT = 14, + TYPE_MEDIA = 15, + TYPE_WEBSOCKET = 16, + TYPE_CSP_REPORT = 17, + TYPE_XSLT = 18, + TYPE_BEACON = 19, + TYPE_FETCH = 20, + TYPE_IMAGESET = 21, + TYPE_WEB_MANIFEST = 22, + TYPE_INTERNAL_SCRIPT = 23, + TYPE_INTERNAL_WORKER = 24, + TYPE_INTERNAL_SHARED_WORKER = 25, + TYPE_INTERNAL_EMBED = 26, + TYPE_INTERNAL_OBJECT = 27, + TYPE_INTERNAL_FRAME = 28, + TYPE_INTERNAL_IFRAME = 29, + TYPE_INTERNAL_AUDIO = 30, + TYPE_INTERNAL_VIDEO = 31, + TYPE_INTERNAL_TRACK = 32, + TYPE_INTERNAL_XMLHTTPREQUEST = 33, + TYPE_INTERNAL_EVENTSOURCE = 34, + TYPE_INTERNAL_SERVICE_WORKER = 35, + TYPE_INTERNAL_SCRIPT_PRELOAD = 36, + TYPE_INTERNAL_IMAGE = 37, + TYPE_INTERNAL_IMAGE_PRELOAD = 38, + TYPE_INTERNAL_STYLESHEET = 39, + TYPE_INTERNAL_STYLESHEET_PRELOAD = 40, + TYPE_INTERNAL_IMAGE_FAVICON = 41, + TYPE_INTERNAL_WORKER_IMPORT_SCRIPTS = 42, + TYPE_SAVEAS_DOWNLOAD = 43, + TYPE_SPECULATIVE = 44, + TYPE_INTERNAL_MODULE = 45, + TYPE_INTERNAL_MODULE_PRELOAD = 46, + TYPE_INTERNAL_DTD = 47, + TYPE_INTERNAL_FORCE_ALLOWED_DTD = 48, + TYPE_INTERNAL_AUDIOWORKLET = 49, + TYPE_INTERNAL_PAINTWORKLET = 50, + TYPE_INTERNAL_FONT_PRELOAD = 51, + TYPE_INTERNAL_CHROMEUTILS_COMPILED_SCRIPT = 52, + TYPE_INTERNAL_FRAME_MESSAGEMANAGER_SCRIPT = 53, + TYPE_INTERNAL_FETCH_PRELOAD = 54, + TYPE_UA_FONT = 55, + TYPE_PROXIED_WEBRTC_MEDIA = 56, + TYPE_WEB_IDENTITY = 57, + TYPE_INTERNAL_WORKER_STATIC_MODULE = 58, + TYPE_WEB_TRANSPORT = 59, + TYPE_END = 60, +} + +} + +declare global { + +interface nsIContentPolicy extends nsISupports, Enums<typeof nsIContentPolicy.nsContentPolicyType> { + readonly REJECT_REQUEST: -1; + readonly REJECT_TYPE: -2; + readonly REJECT_SERVER: -3; + readonly REJECT_OTHER: -4; + readonly REJECT_POLICY: -5; + readonly ACCEPT: 1; + + shouldLoad(aContentLocation: nsIURI, aLoadInfo: nsILoadInfo): i16; + shouldProcess(aContentLocation: nsIURI, aLoadInfo: nsILoadInfo): i16; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsIDroppedLinkHandler.idl + +interface nsIDroppedLinkItem extends nsISupports { + readonly url: string; + readonly name: string; + readonly type: string; +} + +interface nsIDroppedLinkHandler extends nsISupports { + canDropLink(aEvent: DragEvent, aAllowSameDocument: boolean): boolean; + dropLinks(aEvent: DragEvent, aDisallowInherit?: boolean): nsIDroppedLinkItem[]; + validateURIsForDrop(aEvent: DragEvent, aURIs: string[], aDisallowInherit?: boolean): void; + queryLinks(aDataTransfer: DataTransfer): nsIDroppedLinkItem[]; + getTriggeringPrincipal(aEvent: DragEvent): nsIPrincipal; + getCsp(aEvent: DragEvent): nsIContentSecurityPolicy; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsIEventSourceEventService.idl + +interface nsIEventSourceEventListener extends nsISupports { + eventSourceConnectionOpened(aHttpChannelId: u64): void; + eventSourceConnectionClosed(aHttpChannelId: u64): void; + eventReceived(aHttpChannelId: u64, aEventName: string, aLastEventID: string, aData: string, aRetry: u32, aTimeStamp: DOMHighResTimeStamp): void; +} + +interface nsIEventSourceEventService extends nsISupports { + addListener(aInnerWindowID: u64, aListener: nsIEventSourceEventListener): void; + removeListener(aInnerWindowID: u64, aListener: nsIEventSourceEventListener): void; + hasListenerFor(aInnerWindowID: u64): boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsIImageLoadingContent.idl + +interface nsIImageLoadingContent extends imgINotificationObserver { + readonly UNKNOWN_REQUEST: -1; + readonly CURRENT_REQUEST: 0; + readonly PENDING_REQUEST: 1; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsIMessageManager.idl + +interface nsIMessageSender extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsIObjectLoadingContent.idl + +interface nsIObjectLoadingContent extends nsISupports { + readonly TYPE_LOADING: 0; + readonly TYPE_DOCUMENT: 1; + readonly TYPE_FALLBACK: 2; + + readonly actualType: string; + readonly displayedType: u32; + readonly srcURI: nsIURI; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsIScriptChannel.idl + +// https://searchfox.org/mozilla-central/source/dom/base/nsIScriptableContentIterator.idl + +} // global + +declare namespace nsIScriptableContentIterator { + +enum IteratorType { + NOT_INITIALIZED = 0, + POST_ORDER_ITERATOR = 1, + PRE_ORDER_ITERATOR = 2, + SUBTREE_ITERATOR = 3, +} + +} + +declare global { + +interface nsIScriptableContentIterator extends nsISupports, Enums<typeof nsIScriptableContentIterator.IteratorType> { + initWithRootNode(aType: nsIScriptableContentIterator.IteratorType, aRoot: Node): void; + initWithRange(aType: nsIScriptableContentIterator.IteratorType, aRange: Range): void; + initWithPositions(aType: nsIScriptableContentIterator.IteratorType, aStartContainer: Node, aStartOffset: u32, aEndContainer: Node, aEndOffset: u32): void; + first(): void; + last(): void; + next(): void; + prev(): void; + readonly currentNode: Node; + readonly isDone: boolean; + positionAt(aNode: Node): void; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsISelectionController.idl + +interface nsISelectionController extends nsISelectionDisplay { + readonly SELECTION_NONE: 0; + readonly SELECTION_NORMAL: 1; + readonly SELECTION_SPELLCHECK: 2; + readonly SELECTION_IME_RAWINPUT: 3; + readonly SELECTION_IME_SELECTEDRAWTEXT: 4; + readonly SELECTION_IME_CONVERTEDTEXT: 5; + readonly SELECTION_IME_SELECTEDCONVERTEDTEXT: 6; + readonly SELECTION_ACCESSIBILITY: 7; + readonly SELECTION_FIND: 8; + readonly SELECTION_URLSECONDARY: 9; + readonly SELECTION_URLSTRIKEOUT: 10; + readonly SELECTION_HIGHLIGHT: 11; + readonly NUM_SELECTIONTYPES: 12; + readonly SELECTION_ANCHOR_REGION: 0; + readonly SELECTION_FOCUS_REGION: 1; + readonly SELECTION_WHOLE_SELECTION: 2; + readonly NUM_SELECTION_REGIONS: 3; + readonly SELECTION_OFF: 0; + readonly SELECTION_HIDDEN: 1; + readonly SELECTION_ON: 2; + readonly SELECTION_DISABLED: 3; + readonly SELECTION_ATTENTION: 4; + readonly SCROLL_SYNCHRONOUS: 2; + readonly SCROLL_FIRST_ANCESTOR_ONLY: 4; + readonly SCROLL_CENTER_VERTICALLY: 16; + readonly SCROLL_OVERFLOW_HIDDEN: 32; + readonly SCROLL_FOR_CARET_MOVE: 64; + readonly MOVE_LEFT: 0; + readonly MOVE_RIGHT: 1; + readonly MOVE_UP: 2; + readonly MOVE_DOWN: 3; + + setDisplaySelection(toggle: i16): void; + getDisplaySelection(): i16; + getSelection(type: i16): Selection; + scrollSelectionIntoView(type: i16, region: i16, flags: i16): void; + repaintSelection(type: i16): void; + setCaretEnabled(enabled: boolean): void; + setCaretReadOnly(readOnly: boolean): void; + getCaretEnabled(): boolean; + readonly caretVisible: boolean; + setCaretVisibilityDuringSelection(visibility: boolean): void; + characterMove(forward: boolean, extend: boolean): void; + physicalMove(direction: i16, amount: i16, extend: boolean): void; + wordMove(forward: boolean, extend: boolean): void; + lineMove(forward: boolean, extend: boolean): void; + intraLineMove(forward: boolean, extend: boolean): void; + pageMove(forward: boolean, extend: boolean): void; + completeScroll(forward: boolean): void; + completeMove(forward: boolean, extend: boolean): void; + scrollPage(forward: boolean): void; + scrollLine(forward: boolean): void; + scrollCharacter(right: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsISelectionDisplay.idl + +interface nsISelectionDisplay extends nsISupports { + readonly DISPLAY_TEXT: 1; + readonly DISPLAY_IMAGES: 2; + readonly DISPLAY_FRAMES: 4; + readonly DISPLAY_ALL: 7; + + setSelectionFlags(toggle: i16): void; + getSelectionFlags(): i16; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsISelectionListener.idl + +interface nsISelectionListener extends nsISupports { + readonly NO_REASON: 0; + readonly DRAG_REASON: 1; + readonly MOUSEDOWN_REASON: 2; + readonly MOUSEUP_REASON: 4; + readonly KEYPRESS_REASON: 8; + readonly SELECTALL_REASON: 16; + readonly COLLAPSETOSTART_REASON: 32; + readonly COLLAPSETOEND_REASON: 64; + readonly IME_REASON: 128; + readonly JS_REASON: 256; + readonly CHARACTER_AMOUNT: 0; + readonly CLUSTER_AMOUNT: 1; + readonly WORD_AMOUNT: 2; + readonly WORDNOSPACE_AMOUNT: 3; + readonly LINE_AMOUNT: 4; + readonly BEGINLINE_AMOUNT: 5; + readonly ENDLINE_AMOUNT: 6; + readonly NO_AMOUNT: 7; + readonly PARAGRAPH_AMOUNT: 8; + + notifySelectionChanged(doc: Document, sel: Selection, reason: i16, amount: i32): void; +} + +// https://searchfox.org/mozilla-central/source/dom/base/nsISlowScriptDebug.idl + +type nsISlowScriptDebugCallback = Callable<{ + handleSlowScriptDebug(aWindow: nsIDOMWindow): void; +}> + +type nsISlowScriptDebuggerStartupCallback = Callable<{ + finishDebuggerStartup(): void; +}> + +type nsISlowScriptDebugRemoteCallback = Callable<{ + handleSlowScriptDebug(aBrowser: EventTarget, aCallback: nsISlowScriptDebuggerStartupCallback): void; +}> + +interface nsISlowScriptDebug extends nsISupports { + activationHandler: nsISlowScriptDebugCallback; + remoteActivationHandler: nsISlowScriptDebugRemoteCallback; +} + +// https://searchfox.org/mozilla-central/source/dom/console/nsIConsoleAPIStorage.idl + +interface nsIConsoleAPIStorage extends nsISupports { + getEvents(aId?: string): any; + addLogEventListener(aListener: any, aPrincipal: nsIPrincipal): void; + removeLogEventListener(aListener: any): void; + recordEvent(aId: string, aEvent: any): void; + clearEvents(aId?: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/file/ipc/mozIRemoteLazyInputStream.idl + +interface mozIRemoteLazyInputStream extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/dom/ipc/nsIDOMProcessChild.idl + +interface nsIDOMProcessChild extends nsISupports { + readonly childID: u64; + getActor(name: string): JSProcessActorChild; + getExistingActor(name: string): JSProcessActorChild; + readonly canSend: boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/ipc/nsIDOMProcessParent.idl + +interface nsIDOMProcessParent extends nsISupports { + readonly childID: u64; + readonly osPid: i32; + getActor(name: string): JSProcessActorParent; + getExistingActor(name: string): JSProcessActorParent; + readonly canSend: boolean; + readonly remoteType: string; +} + +// https://searchfox.org/mozilla-central/source/dom/ipc/nsIHangReport.idl + +interface nsIHangReport extends nsISupports { + readonly scriptBrowser: Element; + readonly scriptFileName: string; + readonly hangDuration: double; + readonly addonId: string; + readonly childID: u64; + userCanceled(): void; + terminateScript(): void; + beginStartingDebugger(): void; + endStartingDebugger(): void; + isReportForBrowserOrChildren(aFrameLoader: FrameLoader): boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/ipc/nsILoginDetectionService.idl + +interface nsILoginDetectionService extends nsISupports { + init(): void; + isLoginsLoaded(): boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/audiochannel/nsIAudioChannelAgent.idl + +interface nsISuspendedTypes extends nsISupports { + readonly NONE_SUSPENDED: 0; + readonly SUSPENDED_BLOCK: 1; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/domstubs.idl + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowser.idl + +interface nsIBrowser extends nsISupports { + dropLinks(links: string[], triggeringPrincipal: nsIPrincipal): void; + swapBrowsers(aOtherBrowser: nsIBrowser): void; + closeBrowser(): void; + readonly isRemoteBrowser: boolean; + readonly permanentKey: any; + readonly contentPrincipal: nsIPrincipal; + readonly contentPartitionedPrincipal: nsIPrincipal; + readonly csp: nsIContentSecurityPolicy; + readonly referrerInfo: nsIReferrerInfo; + isNavigating: boolean; + mayEnableCharacterEncodingMenu: boolean; + updateForStateChange(aCharset: string, aDocumentURI: nsIURI, aContentType: string): void; + updateWebNavigationForLocationChange(aCanGoBack: boolean, aCanGoForward: boolean): void; + updateForLocationChange(aLocation: nsIURI, aCharset: string, aMayEnableCharacterEncodingMenu: boolean, aDocumentURI: nsIURI, aTitle: string, aContentPrincipal: nsIPrincipal, aContentPartitionedPrincipal: nsIPrincipal, aCSP: nsIContentSecurityPolicy, aReferrerInfo: nsIReferrerInfo, aIsSynthetic: boolean, aHasRequestContextID: boolean, aRequestContextID: u64, aContentType: string): void; + prepareToChangeRemoteness(): Promise<any>; + beforeChangeRemoteness(): void; + finishChangeRemoteness(aPendingSwitchId: u64): boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserChild.idl + +interface nsIBrowserChild extends nsISupports { + readonly messageManager: ContentFrameMessageManager; + remoteDropLinks(links: nsIDroppedLinkItem[]): void; + contentTransformsReceived(): Promise<any>; + readonly tabId: u64; + notifyNavigationFinished(): void; + readonly chromeOuterWindowID: u64; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserDOMWindow.idl + +interface nsIOpenURIInFrameParams extends nsISupports { + readonly openWindowInfo: nsIOpenWindowInfo; + referrerInfo: nsIReferrerInfo; + readonly isPrivate: boolean; + triggeringPrincipal: nsIPrincipal; + csp: nsIContentSecurityPolicy; + readonly openerBrowser: Element; + readonly openerOriginAttributes: any; +} + +interface nsIBrowserDOMWindow extends nsISupports { + readonly OPEN_DEFAULTWINDOW: 0; + readonly OPEN_CURRENTWINDOW: 1; + readonly OPEN_NEWWINDOW: 2; + readonly OPEN_NEWTAB: 3; + readonly OPEN_PRINT_BROWSER: 4; + readonly OPEN_NEWTAB_BACKGROUND: 5; + readonly OPEN_NEW: 0; + readonly OPEN_EXTERNAL: 1; + readonly OPEN_NO_OPENER: 4; + readonly OPEN_NO_REFERRER: 8; + + createContentWindow(aURI: nsIURI, aOpenWindowInfo: nsIOpenWindowInfo, aWhere: i16, aFlags: i32, aTriggeringPrincipal: nsIPrincipal, aCsp?: nsIContentSecurityPolicy): BrowsingContext; + createContentWindowInFrame(aURI: nsIURI, params: nsIOpenURIInFrameParams, aWhere: i16, aFlags: i32, aName: string): Element; + openURI(aURI: nsIURI, aOpenWindowInfo: nsIOpenWindowInfo, aWhere: i16, aFlags: i32, aTriggeringPrincipal: nsIPrincipal, aCsp?: nsIContentSecurityPolicy): BrowsingContext; + openURIInFrame(aURI: nsIURI, params: nsIOpenURIInFrameParams, aWhere: i16, aFlags: i32, aName: string): Element; + canClose(): boolean; + readonly tabCount: u32; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserUsage.idl + +interface nsIBrowserUsage extends nsISupports { + getUniqueDomainsVisitedInPast24Hours(): u32; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIContentPermissionPrompt.idl + +interface nsIContentPermissionType extends nsISupports { + readonly type: string; + readonly options: nsIArray; +} + +interface nsIContentPermissionRequest extends nsISupports { + readonly types: nsIArray; + readonly principal: nsIPrincipal; + readonly topLevelPrincipal: nsIPrincipal; + readonly window: mozIDOMWindow; + readonly element: Element; + readonly hasValidTransientUserGestureActivation: boolean; + readonly isRequestDelegatedToUnsafeThirdParty: boolean; + getDelegatePrincipal(aType: string): nsIPrincipal; + cancel(): void; + allow(choices?: any): void; +} + +type nsIContentPermissionPrompt = Callable<{ + prompt(request: nsIContentPermissionRequest): void; +}> + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIContentPrefService2.idl + +interface nsIContentPrefObserver extends nsISupports { + onContentPrefSet(aGroup: string, aName: string, aValue: nsIVariant, aIsPrivate?: boolean): void; + onContentPrefRemoved(aGroup: string, aName: string, aIsPrivate?: boolean): void; +} + +interface nsIContentPrefService2 extends nsISupports { + readonly GROUP_NAME_MAX_LENGTH: 2000; + + getByName(name: string, context: nsILoadContext, callback: nsIContentPrefCallback2): void; + getByDomainAndName(domain: string, name: string, context: nsILoadContext, callback: nsIContentPrefCallback2): void; + getBySubdomainAndName(domain: string, name: string, context: nsILoadContext, callback: nsIContentPrefCallback2): void; + getGlobal(name: string, context: nsILoadContext, callback: nsIContentPrefCallback2): void; + getCachedByDomainAndName(domain: string, name: string, context: nsILoadContext): nsIContentPref; + getCachedBySubdomainAndName(domain: string, name: string, context: nsILoadContext): nsIContentPref[]; + getCachedGlobal(name: string, context: nsILoadContext): nsIContentPref; + set(domain: string, name: string, value: nsIVariant, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + setGlobal(name: string, value: nsIVariant, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeByDomainAndName(domain: string, name: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeBySubdomainAndName(domain: string, name: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeGlobal(name: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeByDomain(domain: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeBySubdomain(domain: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeByName(name: string, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeAllDomains(context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeAllDomainsSince(since: u64, context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + removeAllGlobals(context: nsILoadContext, callback?: nsIContentPrefCallback2): void; + addObserverForName(name: string, observer: nsIContentPrefObserver): void; + removeObserverForName(name: string, observer: nsIContentPrefObserver): void; + extractDomain(str: string): string; +} + +interface nsIContentPrefCallback2 extends nsISupports { + readonly COMPLETE_OK: 0; + readonly COMPLETE_ERROR: 1; + + handleResult(pref: nsIContentPref): void; + handleError(error: nsresult): void; + handleCompletion(reason: u16): void; +} + +interface nsIContentPref extends nsISupports { + readonly domain: string; + readonly name: string; + readonly value: nsIVariant; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIContentProcess.idl + +interface nsIContentProcessInfo extends nsISupports { + readonly isAlive: boolean; + readonly processId: i32; + readonly tabCount: i32; + readonly messageManager: nsISupports; +} + +interface nsIContentProcessProvider extends nsISupports { + readonly NEW_PROCESS: -1; + + provideProcess(aType: string, aAliveProcesses: nsIContentProcessInfo[], aMaxCount: u32): i32; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMGlobalPropertyInitializer.idl + +interface nsIDOMGlobalPropertyInitializer extends nsISupports { + init(window: mozIDOMWindow): any; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMWindow.idl + +interface nsIDOMWindow extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMWindowUtils.idl + +interface nsIDOMWindowUtils extends nsISupports { + readonly MODIFIER_ALT: 1; + readonly MODIFIER_CONTROL: 2; + readonly MODIFIER_SHIFT: 4; + readonly MODIFIER_META: 8; + readonly MODIFIER_ALTGRAPH: 16; + readonly MODIFIER_CAPSLOCK: 32; + readonly MODIFIER_FN: 64; + readonly MODIFIER_FNLOCK: 128; + readonly MODIFIER_NUMLOCK: 256; + readonly MODIFIER_SCROLLLOCK: 512; + readonly MODIFIER_SYMBOL: 1024; + readonly MODIFIER_SYMBOLLOCK: 2048; + readonly WHEEL_EVENT_CAUSED_BY_NO_LINE_OR_PAGE_DELTA_DEVICE: 1; + readonly WHEEL_EVENT_CAUSED_BY_MOMENTUM: 2; + readonly WHEEL_EVENT_CUSTOMIZED_BY_USER_PREFS: 4; + readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_X_ZERO: 16; + readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_X_POSITIVE: 32; + readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_X_NEGATIVE: 64; + readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_Y_ZERO: 256; + readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_Y_POSITIVE: 512; + readonly WHEEL_EVENT_EXPECTED_OVERFLOW_DELTA_Y_NEGATIVE: 1024; + readonly NATIVE_MODIFIER_CAPS_LOCK: 1; + readonly NATIVE_MODIFIER_NUM_LOCK: 2; + readonly NATIVE_MODIFIER_SHIFT_LEFT: 256; + readonly NATIVE_MODIFIER_SHIFT_RIGHT: 512; + readonly NATIVE_MODIFIER_CONTROL_LEFT: 1024; + readonly NATIVE_MODIFIER_CONTROL_RIGHT: 2048; + readonly NATIVE_MODIFIER_ALT_LEFT: 4096; + readonly NATIVE_MODIFIER_ALT_RIGHT: 8192; + readonly NATIVE_MODIFIER_COMMAND_LEFT: 16384; + readonly NATIVE_MODIFIER_COMMAND_RIGHT: 32768; + readonly NATIVE_MODIFIER_HELP: 65536; + readonly NATIVE_MODIFIER_ALT_GRAPH: 131072; + readonly NATIVE_MODIFIER_FUNCTION: 1048576; + readonly NATIVE_MODIFIER_NUMERIC_KEY_PAD: 16777216; + readonly NATIVE_MOUSE_MESSAGE_BUTTON_DOWN: 1; + readonly NATIVE_MOUSE_MESSAGE_BUTTON_UP: 2; + readonly NATIVE_MOUSE_MESSAGE_MOVE: 3; + readonly NATIVE_MOUSE_MESSAGE_ENTER_WINDOW: 4; + readonly NATIVE_MOUSE_MESSAGE_LEAVE_WINDOW: 5; + readonly MOUSESCROLL_PREFER_WIDGET_AT_POINT: 1; + readonly MOUSESCROLL_SCROLL_LINES: 2; + readonly MOUSESCROLL_WIN_SCROLL_LPARAM_NOT_NULL: 65536; + readonly TOUCH_HOVER: 1; + readonly TOUCH_CONTACT: 2; + readonly TOUCH_REMOVE: 4; + readonly TOUCH_CANCEL: 8; + readonly PHASE_BEGIN: 0; + readonly PHASE_UPDATE: 1; + readonly PHASE_END: 2; + readonly UPDATE_TYPE_RESTORE: 0; + readonly UPDATE_TYPE_MAIN_THREAD: 1; + readonly SCROLL_MODE_INSTANT: 0; + readonly SCROLL_MODE_SMOOTH: 1; + readonly FLUSH_NONE: -1; + readonly FLUSH_STYLE: 0; + readonly FLUSH_LAYOUT: 1; + readonly FLUSH_DISPLAY: 2; + readonly IME_STATUS_DISABLED: 0; + readonly IME_STATUS_ENABLED: 1; + readonly IME_STATUS_PASSWORD: 2; + readonly INPUT_CONTEXT_ORIGIN_MAIN: 0; + readonly INPUT_CONTEXT_ORIGIN_CONTENT: 1; + readonly QUERY_CONTENT_FLAG_USE_NATIVE_LINE_BREAK: 0; + readonly QUERY_CONTENT_FLAG_USE_XP_LINE_BREAK: 1; + readonly QUERY_CONTENT_FLAG_SELECTION_SPELLCHECK: 2; + readonly QUERY_CONTENT_FLAG_SELECTION_IME_RAWINPUT: 4; + readonly QUERY_CONTENT_FLAG_SELECTION_IME_SELECTEDRAWTEXT: 8; + readonly QUERY_CONTENT_FLAG_SELECTION_IME_CONVERTEDTEXT: 16; + readonly QUERY_CONTENT_FLAG_SELECTION_IME_SELECTEDCONVERTEDTEXT: 32; + readonly QUERY_CONTENT_FLAG_SELECTION_ACCESSIBILITY: 64; + readonly QUERY_CONTENT_FLAG_SELECTION_FIND: 128; + readonly QUERY_CONTENT_FLAG_SELECTION_URLSECONDARY: 256; + readonly QUERY_CONTENT_FLAG_SELECTION_URLSTRIKEOUT: 512; + readonly QUERY_CONTENT_FLAG_OFFSET_RELATIVE_TO_INSERTION_POINT: 1024; + readonly QUERY_SELECTED_TEXT: 3200; + readonly QUERY_TEXT_CONTENT: 3201; + readonly QUERY_CARET_RECT: 3203; + readonly QUERY_TEXT_RECT: 3204; + readonly QUERY_EDITOR_RECT: 3205; + readonly QUERY_CHARACTER_AT_POINT: 3208; + readonly QUERY_TEXT_RECT_ARRAY: 3209; + readonly SELECTION_SET_FLAG_USE_NATIVE_LINE_BREAK: 0; + readonly SELECTION_SET_FLAG_USE_XP_LINE_BREAK: 1; + readonly SELECTION_SET_FLAG_REVERSE: 2; + readonly SELECT_CHARACTER: 0; + readonly SELECT_CLUSTER: 1; + readonly SELECT_WORD: 2; + readonly SELECT_LINE: 3; + readonly SELECT_BEGINLINE: 4; + readonly SELECT_ENDLINE: 5; + readonly SELECT_PARAGRAPH: 6; + readonly SELECT_WORDNOSPACE: 7; + readonly AUDIO_INPUT: 0; + readonly AUDIO_OUTPUT: 1; + readonly AGENT_SHEET: 0; + readonly USER_SHEET: 1; + readonly AUTHOR_SHEET: 2; + readonly WR_CAPTURE_SCENE: 1; + readonly WR_CAPTURE_FRAME: 2; + readonly WR_CAPTURE_TILE_CACHE: 4; + readonly WR_CAPTURE_EXTERNAL_RESOURCES: 8; + readonly DEFAULT_MOUSE_POINTER_ID: 0; + readonly DEFAULT_PEN_POINTER_ID: 1; + readonly DEFAULT_TOUCH_POINTER_ID: 2; + readonly MOUSE_BUTTON_LEFT_BUTTON: 0; + readonly MOUSE_BUTTON_MIDDLE_BUTTON: 1; + readonly MOUSE_BUTTON_RIGHT_BUTTON: 2; + readonly MOUSE_BUTTONS_NO_BUTTON: 0; + readonly MOUSE_BUTTONS_LEFT_BUTTON: 1; + readonly MOUSE_BUTTONS_RIGHT_BUTTON: 2; + readonly MOUSE_BUTTONS_MIDDLE_BUTTON: 4; + readonly MOUSE_BUTTONS_4TH_BUTTON: 8; + readonly MOUSE_BUTTONS_5TH_BUTTON: 16; + readonly MOUSE_BUTTONS_NOT_SPECIFIED: -1; + readonly DIRECTION_LTR: 0; + readonly DIRECTION_RTL: 1; + readonly DIRECTION_NOT_SET: 2; + + imageAnimationMode: u16; + readonly docCharsetIsForced: boolean; + readonly physicalMillimeterInCSSPixels: float; + getDocumentMetadata(aName: string): string; + getLastOverWindowPointerLocationInCSSPixels(aX: OutParam<float>, aY: OutParam<float>): void; + updateLayerTree(): void; + readonly lastTransactionId: u64; + getViewportInfo(aDisplayWidth: u32, aDisplayHeight: u32, aDefaultZoom: OutParam<double>, aAllowZoom: OutParam<boolean>, aMinZoom: OutParam<double>, aMaxZoom: OutParam<double>, aWidth: OutParam<u32>, aHeight: OutParam<u32>, aAutoSize: OutParam<boolean>): void; + getViewportFitInfo(): string; + getDocumentViewerSize(aDisplayWidth: OutParam<u32>, aDisplayHeight: OutParam<u32>): void; + setMousewheelAutodir(aElement: Element, aEnabled: boolean, aHonourRoot: boolean): void; + setDisplayPortForElement(aXPx: float, aYPx: float, aWidthPx: float, aHeightPx: float, aElement: Element, aPriority: u32): void; + setDisplayPortMarginsForElement(aLeftMargin: float, aTopMargin: float, aRightMargin: float, aBottomMargin: float, aElement: Element, aPriority: u32): void; + setDisplayPortBaseForElement(aX: i32, aY: i32, aWidth: i32, aHeight: i32, aElement: Element): void; + getScrollbarSizes(aElement: Element, aVerticalScrollbarWidth: OutParam<u32>, aHorizontalScrollbarHeight: OutParam<u32>): void; + setResolutionAndScaleTo(aResolution: float): void; + getResolution(): float; + setRestoreResolution(aResolution: float, aDisplayWidth: u32, aDisplayHeight: u32): void; + isFirstPaint: boolean; + getPresShellId(): u32; + isCORSSafelistedRequestHeader(name: string, value: string): boolean; + sendMouseEvent(aType: string, aX: float, aY: float, aButton: i32, aClickCount: i32, aModifiers: i32, aIgnoreRootScrollFrame?: boolean, aPressure?: float, aInputSourceArg?: u16, aIsDOMEventSynthesized?: boolean, aIsWidgetEventSynthesized?: boolean, aButtons?: i32, aIdentifier?: u32): boolean; + sendTouchEvent(aType: string, aIdentifiers: u32[], aXs: i32[], aYs: i32[], aRxs: u32[], aRys: u32[], aRotationAngles: float[], aForces: float[], aTiltXs: i32[], aTiltYs: i32[], aTwists: i32[], aModifiers: i32, aIgnoreRootScrollFrame?: boolean): boolean; + sendMouseEventToWindow(aType: string, aX: float, aY: float, aButton: i32, aClickCount: i32, aModifiers: i32, aIgnoreRootScrollFrame?: boolean, aPressure?: float, aInputSourceArg?: u16, aIsDOMEventSynthesized?: boolean, aIsWidgetEventSynthesized?: boolean, aButtons?: i32, aIdentifier?: u32): void; + sendTouchEventToWindow(aType: string, aIdentifiers: u32[], aXs: i32[], aYs: i32[], aRxs: u32[], aRys: u32[], aRotationAngles: float[], aForces: float[], aTiltXs: i32[], aTiltYs: i32[], aTwists: i32[], aModifiers: i32, aIgnoreRootScrollFrame?: boolean): boolean; + sendWheelEvent(aX: float, aY: float, aDeltaX: double, aDeltaY: double, aDeltaZ: double, aDeltaMode: u32, aModifiers: i32, aLineOrPageDeltaX: i32, aLineOrPageDeltaY: i32, aOptions: u32): void; + sendNativeKeyEvent(aNativeKeyboardLayout: i32, aNativeKeyCode: i32, aModifierFlags: u32, aCharacters: string, aUnmodifiedCharacters: string, aObserver?: nsIObserver): void; + sendNativeMouseEvent(aScreenX: i32, aScreenY: i32, aNativeMessage: u32, aButton: i16, aModifierFlags: u32, aElementOnWidget: Element, aObserver?: nsIObserver): void; + suppressAnimation(aSuppress: boolean): void; + sendNativeMouseScrollEvent(aScreenX: i32, aScreenY: i32, aNativeMessage: u32, aDeltaX: double, aDeltaY: double, aDeltaZ: double, aModifierFlags: u32, aAdditionalFlags: u32, aElement: Element, aObserver?: nsIObserver): void; + sendNativeTouchPoint(aPointerId: u32, aTouchState: u32, aScreenX: i32, aScreenY: i32, aPressure: double, aOrientation: u32, aObserver?: nsIObserver): void; + sendNativeTouchpadPinch(aEventPhase: u32, aScale: float, aScreenX: i32, aScreenY: i32, aModifierFlags: i32): void; + sendNativeTouchTap(aScreenX: i32, aScreenY: i32, aLongTap: boolean, aObserver?: nsIObserver): void; + sendNativePenInput(aPointerId: u32, aPointerState: u32, aScreenX: i32, aScreenY: i32, aPressure: double, aRotation: u32, aTiltX: i32, aTiltY: i32, aButton: i32, aObserver?: nsIObserver): void; + clearNativeTouchSequence(aObserver?: nsIObserver): void; + sendNativeTouchpadDoubleTap(aScreenX: i32, aScreenY: i32, aModifierFlags: i32): void; + sendNativeTouchpadPan(aEventPhase: u32, aScreenX: i32, aScreenY: i32, aDeltaX: double, aDeltaY: double, aModifierFlags: i32, aObserver?: nsIObserver): void; + clearSharedStyleSheetCache(): void; + readonly parsedStyleSheets: u32; + activateNativeMenuItemAt(indexString: string): void; + forceUpdateNativeMenuAt(indexString: string): void; + GetSelectionAsPlaintext(): string; + garbageCollect(aListener?: nsICycleCollectorListener): void; + cycleCollect(aListener?: nsICycleCollectorListener): void; + runNextCollectorTimer(aReason?: string): void; + pokeGC(aReason?: string): void; + sendSimpleGestureEvent(aType: string, aX: float, aY: float, aDirection: u32, aDelta: double, aModifiers: i32, aClickCount?: u32): void; + elementFromPoint(aX: float, aY: float, aIgnoreRootScrollFrame: boolean, aFlushLayout: boolean): Element; + nodesFromRect(aX: float, aY: float, aTopSize: float, aRightSize: float, aBottomSize: float, aLeftSize: float, aIgnoreRootScrollFrame: boolean, aFlushLayout: boolean, aOnlyVisible: boolean, aTransparencyThreshold?: float): NodeList; + getTranslationNodes(aRoot: Node): nsITranslationNodeList; + compareCanvases(aCanvas1: nsISupports, aCanvas2: nsISupports, aMaxDifference: OutParam<u32>): u32; + readonly isMozAfterPaintPending: boolean; + readonly isInputTaskManagerSuspended: boolean; + suppressEventHandling(aSuppress: boolean): void; + disableNonTestMouseEvents(aDisable: boolean): void; + getScrollXY(aFlushLayout: boolean, aScrollX: OutParam<i32>, aScrollY: OutParam<i32>): void; + getScrollXYFloat(aFlushLayout: boolean, aScrollX: OutParam<float>, aScrollY: OutParam<float>): void; + getScrollbarSize(aFlushLayout: boolean, aWidth: OutParam<i32>, aHeight: OutParam<i32>): void; + getBoundsWithoutFlushing(aElement: Element): DOMRect; + scrollToVisual(aOffsetX: float, aOffsetY: float, aUpdateType: i32, aScrollMode: i32): void; + getVisualViewportOffsetRelativeToLayoutViewport(aOffsetX: OutParam<float>, aOffsetY: OutParam<float>): void; + getVisualViewportOffset(aOffsetX: OutParam<i32>, aOffsetY: OutParam<i32>): void; + transformRectLayoutToVisual(aX: float, aY: float, aWidth: float, aHeight: float): DOMRect; + toScreenRectInCSSUnits(aX: float, aY: float, aWidth: float, aHeight: float): DOMRect; + toScreenRect(aX: float, aY: float, aWidth: float, aHeight: float): DOMRect; + convertFromParentProcessWidgetToLocal(aX: float, aY: float, aWidth: float, aHeight: float): DOMRect; + setDynamicToolbarMaxHeight(aHeightInScreen: u32): void; + needsFlush(aFlushtype: i32): boolean; + flushLayoutWithoutThrottledAnimations(): void; + getRootBounds(): DOMRect; + readonly IMEIsOpen: boolean; + readonly IMEStatus: u32; + readonly inputContextURI: nsIURI; + readonly inputContextOrigin: u32; + readonly nodeObservedByIMEContentObserver: Node; + dispatchDOMEventViaPresShellForTesting(aTarget: Node, aEvent: Event): boolean; + dispatchEventToChromeOnly(aTarget: EventTarget, aEvent: Event): boolean; + getClassName(aObject: any): string; + sendContentCommandEvent(aType: string, aTransferable?: nsITransferable, aString?: string): void; + sendQueryContentEvent(aType: u32, aOffset: i64, aLength: u32, aX: i32, aY: i32, aAdditionalFlags?: u32): nsIQueryContentEventResult; + remoteFrameFullscreenChanged(aFrameElement: Element): void; + remoteFrameFullscreenReverted(): void; + handleFullscreenRequests(): boolean; + exitFullscreen(aDontRestoreViewSize?: boolean): void; + sendSelectionSetEvent(aOffset: u32, aLength: u32, aAdditionalFlags?: u32): boolean; + selectAtPoint(aX: float, aY: float, aSelectBehavior: u32): boolean; + getVisitedDependentComputedStyle(aElement: Element, aPseudoElement: string, aPropertyName: string): string; + enterModalState(): void; + leaveModalState(): void; + isInModalState(): boolean; + suspendTimeouts(): void; + resumeTimeouts(): void; + readonly layerManagerType: string; + readonly layerManagerRemote: boolean; + readonly isWebRenderRequested: boolean; + readonly currentAudioBackend: string; + readonly currentMaxAudioChannels: u32; + defaultDevicesRoundTripLatency(): Promise<any>; + readonly currentPreferredSampleRate: u32; + audioDevices(aSide: u16): nsIArray; + startFrameTimeRecording(): OutParam<u32>; + stopFrameTimeRecording(startIndex: u32): float[]; + readonly displayDPI: float; + advanceTimeAndRefresh(aMilliseconds: i64): void; + restoreNormalRefresh(): void; + readonly isTestControllingRefreshes: boolean; + readonly asyncPanZoomEnabled: boolean; + setAsyncScrollOffset(aElement: Element, aX: float, aY: float): void; + setAsyncZoom(aRootElement: Element, aValue: float): void; + flushApzRepaints(): boolean; + disableApzForElement(aElement: Element): void; + zoomToFocusedInput(): void; + computeAnimationDistance(element: Element, property: string, value1: string, value2: string): double; + getUnanimatedComputedStyle(aElement: Element, aPseudoElement: string, aProperty: string, aFlushType: i32): string; + readonly canvasBackgroundColor: string; + readonly focusedInputType: string; + readonly focusedActionHint: string; + readonly focusedInputMode: string; + readonly focusedAutocapitalize: string; + getViewId(aElement: Element): nsViewID; + checkAndClearPaintedState(aElement: Element): boolean; + checkAndClearDisplayListState(aElement: Element): boolean; + isPartOfOpaqueLayer(aElement: Element): boolean; + numberOfAssignedPaintedLayers(aElements: Element[]): u32; + getFileId(aFile: any): i64; + getFilePath(aFile: any): string; + getFileReferences(aDatabaseName: string, aId: i64, aRefCnt?: OutParam<i32>, aDBRefCnt?: OutParam<i32>): boolean; + flushPendingFileDeletions(): void; + startPCCountProfiling(): void; + stopPCCountProfiling(): void; + purgePCCounts(): void; + getPCCountScriptCount(): i32; + getPCCountScriptSummary(script: i32): string; + getPCCountScriptContents(script: i32): string; + readonly paintingSuppressed: boolean; + setVisualViewportSize(aWidth: float, aHeight: float): void; + disableDialogs(): void; + enableDialogs(): void; + areDialogsEnabled(): boolean; + resetDialogAbuseState(): void; + loadSheet(sheetURI: nsIURI, type: u32): void; + loadSheetUsingURIString(sheetURI: string, type: u32): void; + addSheet(sheet: nsIPreloadedStyleSheet, type: u32): void; + removeSheet(sheetURI: nsIURI, type: u32): void; + removeSheetUsingURIString(sheetURI: string, type: u32): void; + readonly isHandlingUserInput: boolean; + readonly millisSinceLastUserInput: double; + allowScriptsToClose(): void; + readonly isParentWindowMainWidgetVisible: boolean; + isNodeDisabledForEvents(aNode: Node): boolean; + getOMTAStyle(aElement: Element, aProperty: string, aPseudoElement?: string): string; + setHandlingUserInput(aHandlingInput: boolean): nsIJSRAIIHelper; + isKeyboardEventUserActivity(aKeyboardEvent: Event): boolean; + getContentAPZTestData(): any; + getCompositorAPZTestData(): any; + postRestyleSelfEvent(aElement: Element): void; + xpconnectArgument(aObj: nsISupports): void; + askPermission(aRequest: nsIContentPermissionRequest): void; + readonly restyleGeneration: u64; + readonly framesConstructed: u64; + readonly framesReflowed: u64; + readonly animationTriggeredRestyles: u64; + readonly refreshDriverHasPendingTick: boolean; + setChromeMargin(aTop: i32, aRight: i32, aBottom: i32, aLeft: i32): void; + setResizeMargin(aResizeMargin: i32): void; + getFrameUniformityTestData(): any; + enterChaosMode(): void; + leaveChaosMode(): void; + triggerDeviceReset(): void; + hasRuleProcessorUsedByMultipleStyleSets(aSheetType: u32): boolean; + respectDisplayPortSuppression(aEnabled: boolean): void; + forceReflowInterrupt(): void; + terminateGPUProcess(): void; + readonly gpuProcessPid: i32; + addManuallyManagedState(element: Element, state: string): void; + removeManuallyManagedState(element: Element, state: string): void; + getStorageUsage(aStorage: Storage): i64; + getDirectionFromText(aString: string): i32; + ensureDirtyRootFrame(): void; + wrCapture(): void; + wrStartCaptureSequence(aPath: string, aFlags: u32): void; + wrStopCaptureSequence(): void; + setCompositionRecording(aValue: boolean): Promise<any>; + startCompositionRecording(): Promise<any>; + stopCompositionRecording(aWriteToDisk: boolean): Promise<any>; + isCssPropertyRecordedInUseCounter(aProperty: string): boolean; + resetMobileViewportManager(): void; + isCoepCredentialless(): boolean; + setHiDPIMode(aHiDPI: boolean): void; + restoreHiDPIMode(): void; + systemFont: string; + readonly paintCount: u64; + syncFlushCompositor(): void; + getLayersId(): u64; + readonly effectivelyThrottlesFrameRequests: boolean; + readonly webrtcRawDeviceId: string; + readonly suspendedByBrowsingContextGroup: boolean; + readonly hasScrollLinkedEffect: boolean; + readonly orientationLock: u32; + getWheelScrollTarget(): Element; +} + +interface nsITranslationNodeList extends nsISupports { + readonly length: u32; + item(index: u32): Node; + isTranslationRootAtIndex(index: u32): boolean; +} + +interface nsIJSRAIIHelper extends nsISupports { + destruct(): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIFocusManager.idl + +interface nsIFocusManager extends nsISupports { + readonly FLAG_RAISE: 1; + readonly FLAG_NOSCROLL: 2; + readonly FLAG_NOSWITCHFRAME: 4; + readonly FLAG_NOPARENTFRAME: 8; + readonly FLAG_NONSYSTEMCALLER: 16; + readonly FLAG_BYMOUSE: 4096; + readonly FLAG_BYKEY: 8192; + readonly FLAG_BYMOVEFOCUS: 16384; + readonly FLAG_NOSHOWRING: 32768; + readonly FLAG_SHOWRING: 1048576; + readonly FLAG_BYTOUCH: 2097152; + readonly FLAG_BYJS: 4194304; + readonly FLAG_BYLONGPRESS: 8388608; + readonly METHOD_MASK: 14708736; + readonly METHODANDRING_MASK: 15790080; + readonly MOVEFOCUS_FORWARD: 1; + readonly MOVEFOCUS_BACKWARD: 2; + readonly MOVEFOCUS_FORWARDDOC: 3; + readonly MOVEFOCUS_BACKWARDDOC: 4; + readonly MOVEFOCUS_FIRST: 5; + readonly MOVEFOCUS_LAST: 6; + readonly MOVEFOCUS_ROOT: 7; + readonly MOVEFOCUS_CARET: 8; + readonly MOVEFOCUS_FIRSTDOC: 9; + readonly MOVEFOCUS_LASTDOC: 10; + + readonly activeWindow: mozIDOMWindowProxy; + readonly activeBrowsingContext: BrowsingContext; + focusedWindow: mozIDOMWindowProxy; + readonly focusedContentBrowsingContext: BrowsingContext; + readonly focusedElement: Element; + getLastFocusMethod(window: mozIDOMWindowProxy): u32; + setFocus(aElement: Element, aFlags: u32): void; + moveFocus(aWindow: mozIDOMWindowProxy, aStartElement: Element, aType: u32, aFlags: u32): Element; + clearFocus(aWindow: mozIDOMWindowProxy): void; + getFocusedElementForWindow(aWindow: mozIDOMWindowProxy, aDeep: boolean, aFocusedWindow: OutParam<mozIDOMWindowProxy>): Element; + moveCaretToFocus(aWindow: mozIDOMWindowProxy): void; + elementIsFocusable(aElement: Element, aFlags: u32): boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIPermissionDelegateHandler.idl + +interface nsIPermissionDelegateHandler extends nsISupports { + maybeUnsafePermissionDelegate(aTypes: string[]): boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIQueryContentEventResult.idl + +interface nsIQueryContentEventResult extends nsISupports { + readonly offset: u32; + readonly tentativeCaretOffset: u32; + readonly reversed: boolean; + readonly left: i32; + readonly top: i32; + readonly width: i32; + readonly height: i32; + readonly text: string; + getCharacterRect(offset: i32, left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void; + readonly succeeded: boolean; + readonly notFound: boolean; + readonly tentativeCaretOffsetNotFound: boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIRemoteTab.idl + +} // global + +declare namespace nsIRemoteTab { + +enum NavigationType { + NAVIGATE_BACK = 0, + NAVIGATE_FORWARD = 1, + NAVIGATE_INDEX = 2, + NAVIGATE_URL = 3, +} + +} + +declare global { + +interface nsIRemoteTab extends nsISupports, Enums<typeof nsIRemoteTab.NavigationType> { + renderLayers: boolean; + readonly hasLayers: boolean; + priorityHint: boolean; + deprioritize(): void; + preserveLayers(aPreserveLayers: boolean): void; + readonly tabId: u64; + readonly contentProcessId: u64; + readonly osPid: i32; + readonly browsingContext: BrowsingContext; + readonly hasPresented: boolean; + transmitPermissionsForPrincipal(aPrincipal: nsIPrincipal): void; + createAboutBlankDocumentViewer(aPrincipal: nsIPrincipal, aPartitionedPrincipal: nsIPrincipal): void; + maybeCancelContentJSExecution(aNavigationType: nsIRemoteTab.NavigationType, aCancelContentJSOptions?: any): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIServiceWorkerManager.idl + +interface nsIServiceWorkerUnregisterCallback extends nsISupports { + unregisterSucceeded(aState: boolean): void; + unregisterFailed(): void; +} + +interface nsIServiceWorkerInfo extends nsISupports { + readonly STATE_PARSED: 0; + readonly STATE_INSTALLING: 1; + readonly STATE_INSTALLED: 2; + readonly STATE_ACTIVATING: 3; + readonly STATE_ACTIVATED: 4; + readonly STATE_REDUNDANT: 5; + readonly STATE_UNKNOWN: 6; + + readonly id: string; + readonly scriptSpec: string; + readonly cacheName: string; + readonly state: u16; + readonly debugger: nsIWorkerDebugger; + readonly handlesFetchEvents: boolean; + readonly installedTime: PRTime; + readonly activatedTime: PRTime; + readonly redundantTime: PRTime; + readonly navigationFaultCount: u32; + testingInjectCancellation: nsresult; + attachDebugger(): void; + detachDebugger(): void; +} + +interface nsIServiceWorkerRegistrationInfoListener extends nsISupports { + onChange(): void; +} + +interface nsIServiceWorkerRegistrationInfo extends nsISupports { + readonly UPDATE_VIA_CACHE_IMPORTS: 0; + readonly UPDATE_VIA_CACHE_ALL: 1; + readonly UPDATE_VIA_CACHE_NONE: 2; + + readonly principal: nsIPrincipal; + readonly unregistered: boolean; + readonly scope: string; + readonly scriptSpec: string; + readonly updateViaCache: u16; + readonly lastUpdateTime: PRTime; + readonly evaluatingWorker: nsIServiceWorkerInfo; + readonly installingWorker: nsIServiceWorkerInfo; + readonly waitingWorker: nsIServiceWorkerInfo; + readonly activeWorker: nsIServiceWorkerInfo; + readonly quotaUsageCheckCount: i32; + getWorkerByID(aID: u64): nsIServiceWorkerInfo; + addListener(listener: nsIServiceWorkerRegistrationInfoListener): void; + removeListener(listener: nsIServiceWorkerRegistrationInfoListener): void; + forceShutdown(): void; +} + +interface nsIServiceWorkerManagerListener extends nsISupports { + onRegister(aInfo: nsIServiceWorkerRegistrationInfo): void; + onUnregister(aInfo: nsIServiceWorkerRegistrationInfo): void; + onQuotaUsageCheckFinish(aInfo: nsIServiceWorkerRegistrationInfo): void; +} + +interface nsIServiceWorkerManager extends nsISupports { + reloadRegistrationsForTest(): void; + registerForTest(aPrincipal: nsIPrincipal, aScope: string, aScriptURL: string): Promise<any>; + registerForAddonPrincipal(aPrincipal: nsIPrincipal): Promise<any>; + getRegistrationForAddonPrincipal(aPrincipal: nsIPrincipal): OutParam<nsIServiceWorkerRegistrationInfo>; + wakeForExtensionAPIEvent(aExtensionBaseURL: string, aAPINamespace: string, aAPIEventName: string): Promise<any>; + unregister(aPrincipal: nsIPrincipal, aCallback: nsIServiceWorkerUnregisterCallback, aScope: string): void; + getRegistrationByPrincipal(aPrincipal: nsIPrincipal, aScope: string): nsIServiceWorkerRegistrationInfo; + getScopeForUrl(aPrincipal: nsIPrincipal, aPath: string): string; + getAllRegistrations(): nsIArray; + removeRegistrationsByOriginAttributes(aOriginAttributes: string): void; + propagateUnregister(aPrincipal: nsIPrincipal, aCallback: nsIServiceWorkerUnregisterCallback, aScope: string): void; + sendNotificationClickEvent(aOriginSuffix: string, scope: string, aID: string, aTitle: string, aDir: string, aLang: string, aBody: string, aTag: string, aIcon: string, aData: string, aBehavior: string): void; + sendNotificationCloseEvent(aOriginSuffix: string, scope: string, aID: string, aTitle: string, aDir: string, aLang: string, aBody: string, aTag: string, aIcon: string, aData: string, aBehavior: string): void; + sendPushEvent(aOriginAttributes: string, aScope: string, aDataBytes?: u8[]): void; + sendPushSubscriptionChangeEvent(aOriginAttributes: string, scope: string): void; + addListener(aListener: nsIServiceWorkerManagerListener): void; + removeListener(aListener: nsIServiceWorkerManagerListener): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIStructuredCloneContainer.idl + +interface nsIStructuredCloneContainer extends nsISupports { + initFromBase64(aData: string, aFormatVersion: u32): void; + deserializeToJsval(): any; + getDataAsBase64(): string; + readonly serializedNBytes: u64; + readonly formatVersion: u32; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsITextInputProcessor.idl + +interface nsITextInputProcessor extends nsISupports { + readonly ATTR_RAW_CLAUSE: 2; + readonly ATTR_SELECTED_RAW_CLAUSE: 3; + readonly ATTR_CONVERTED_CLAUSE: 4; + readonly ATTR_SELECTED_CLAUSE: 5; + readonly KEY_DEFAULT_PREVENTED: 1; + readonly KEY_NON_PRINTABLE_KEY: 2; + readonly KEY_FORCE_PRINTABLE_KEY: 4; + readonly KEY_KEEP_KEY_LOCATION_STANDARD: 8; + readonly KEY_KEEP_KEYCODE_ZERO: 16; + readonly KEY_DONT_DISPATCH_MODIFIER_KEY_EVENT: 32; + readonly KEY_DONT_MARK_KEYDOWN_AS_PROCESSED: 64; + readonly KEY_MARK_KEYUP_AS_PROCESSED: 128; + readonly KEYEVENT_NOT_CONSUMED: 0; + readonly KEYDOWN_IS_CONSUMED: 1; + readonly KEYPRESS_IS_CONSUMED: 2; + + readonly hasComposition: boolean; + beginInputTransaction(aWindow: mozIDOMWindow, aCallback: nsITextInputProcessorCallback): boolean; + beginInputTransactionForTests(aWindow: mozIDOMWindow, aCallback?: nsITextInputProcessorCallback): boolean; + startComposition(aKeyboardEvent?: Event, aKeyFlags?: u32): boolean; + setPendingCompositionString(aString: string): void; + appendClauseToPendingComposition(aLength: u32, aAttribute: u32): void; + setCaretInPendingComposition(aOffset: u32): void; + flushPendingComposition(aKeyboardEvent?: Event, aKeyFlags?: u32): boolean; + commitComposition(aKeyboardEvent?: Event, aKeyFlags?: u32): void; + commitCompositionWith(aCommitString: string, aKeyboardEvent?: Event, aKeyFlags?: u32): boolean; + cancelComposition(aKeyboardEvent?: Event, aKeyFlags?: u32): void; + keydown(aKeyboardEvent: Event, aKeyFlags?: u32): u32; + keyup(aKeyboardEvent: Event, aKeyFlags?: u32): boolean; + getModifierState(aModifierKey: string): boolean; + shareModifierStateOf(aOther: nsITextInputProcessor): void; + computeCodeValueOfNonPrintableKey(aKeyValue: string, aLocation?: any): string; + guessCodeValueOfPrintableKeyInUSEnglishKeyboardLayout(aKeyValue: string, aLocation?: any): string; + guessKeyCodeValueOfPrintableKeyInUSEnglishKeyboardLayout(aKeyValue: string, aLocation?: any): u32; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsITextInputProcessorCallback.idl + +interface nsITextInputProcessorNotification extends nsISupports { + readonly type: string; + readonly hasRange: boolean; + readonly offset: u32; + readonly text: string; + readonly collapsed: boolean; + readonly length: u32; + readonly reversed: boolean; + readonly writingMode: string; + readonly causedByComposition: boolean; + readonly causedBySelectionEvent: boolean; + readonly occurredDuringComposition: boolean; + readonly removedLength: u32; + readonly addedLength: u32; + readonly causedOnlyByComposition: boolean; + readonly includingChangesDuringComposition: boolean; + readonly includingChangesWithoutComposition: boolean; +} + +type nsITextInputProcessorCallback = Callable<{ + onNotify(aTextInputProcessor: nsITextInputProcessor, aNotification: nsITextInputProcessorNotification): boolean; +}> + +// https://searchfox.org/mozilla-central/source/dom/bindings/nsIScriptError.idl + +interface nsIScriptErrorNote extends nsISupports { + readonly errorMessage: string; + readonly sourceName: string; + readonly sourceId: u32; + readonly lineNumber: u32; + readonly columnNumber: u32; + toString(): string; +} + +interface nsIScriptError extends nsIConsoleMessage { + readonly errorFlag: 0; + readonly warningFlag: 1; + readonly infoFlag: 8; + + readonly errorMessage: string; + readonly sourceName: string; + readonly sourceLine: string; + readonly sourceId: u32; + readonly lineNumber: u32; + readonly columnNumber: u32; + readonly flags: u32; + readonly category: string; + readonly outerWindowID: u64; + readonly innerWindowID: u64; + readonly isFromPrivateWindow: boolean; + readonly isFromChromeContext: boolean; + readonly isPromiseRejection: boolean; + exception: any; + readonly hasException: boolean; + stack: any; + errorMessageName: string; + readonly notes: nsIArray; + cssSelectors: string; + init(message: string, sourceName: string, sourceLine: string, lineNumber: u32, columnNumber: u32, flags: u32, category: string, fromPrivateWindow?: boolean, fromChromeContext?: boolean): void; + initWithWindowID(message: string, sourceName: string, sourceLine: string, lineNumber: u32, columnNumber: u32, flags: u32, category: string, innerWindowID: u64, fromChromeContext?: boolean): void; + initWithSanitizedSource(message: string, sourceName: string, sourceLine: string, lineNumber: u32, columnNumber: u32, flags: u32, category: string, innerWindowID: u64, fromChromeContext?: boolean): void; + initWithSourceURI(message: string, sourceURI: nsIURI, sourceLine: string, lineNumber: u32, columnNumber: u32, flags: u32, category: string, innerWindowID: u64, fromChromeContext?: boolean): void; + initSourceId(sourceId: u32): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/events/nsIDOMEventListener.idl + +// https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPosition.idl + +interface nsIDOMGeoPosition extends nsISupports { + readonly timestamp: EpochTimeStamp; + readonly coords: nsIDOMGeoPositionCoords; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionCallback.idl + +type nsIDOMGeoPositionCallback = Callable<{ + handleEvent(position: nsIDOMGeoPosition): void; +}> + +// https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionCoords.idl + +interface nsIDOMGeoPositionCoords extends nsISupports { + readonly latitude: double; + readonly longitude: double; + readonly altitude: double; + readonly accuracy: double; + readonly altitudeAccuracy: double; + readonly heading: double; + readonly speed: double; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionErrorCallback.idl + +type nsIDOMGeoPositionErrorCallback = Callable<{ + handleEvent(positionError: GeolocationPositionError): void; +}> + +// https://searchfox.org/mozilla-central/source/toolkit/components/credentialmanagement/nsIIdentityCredentialPromptService.idl + +interface nsIIdentityCredentialPromptService extends nsISupports { + showProviderPrompt(browsingContext: BrowsingContext, identityProviders: any, identityManifests: any): Promise<any>; + showPolicyPrompt(browsingContext: BrowsingContext, identityProvider: any, identityManifest: any, identityClientMetadata: any): Promise<any>; + showAccountListPrompt(browsingContext: BrowsingContext, accountList: any, identityProvider: any, identityManifest: any): Promise<any>; + close(browsingContext: BrowsingContext): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/credentialmanagement/nsIIdentityCredentialStorageService.idl + +interface nsIIdentityCredentialStorageService extends nsISupports { + setState(rpPrincipal: nsIPrincipal, idpPrincipal: nsIPrincipal, credentialID: string, registered: boolean, allowLogout: boolean): void; + getState(rpPrincipal: nsIPrincipal, idpPrincipal: nsIPrincipal, credentialID: string, registered: OutParam<boolean>, allowLogout: OutParam<boolean>): void; + delete(rpPrincipal: nsIPrincipal, idpPrincipal: nsIPrincipal, credentialID: string): void; + clear(): void; + deleteFromBaseDomain(baseDomain: string): void; + deleteFromPrincipal(rpPrincipal: nsIPrincipal): void; + deleteFromTimeRange(aFrom: PRTime, aTo: PRTime): void; + deleteFromOriginAttributesPattern(aPattern: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/indexedDB/nsIIDBPermissionsRequest.idl + +interface nsIIDBPermissionsRequest extends nsISupports { + readonly browserElement: Element; + readonly responseObserver: nsIObserver; +} + +// https://searchfox.org/mozilla-central/source/dom/localstorage/nsILocalStorageManager.idl + +interface nsILocalStorageManager extends nsISupports { + readonly nextGenLocalStorageEnabled: boolean; + preload(aPrincipal: nsIPrincipal): Promise<any>; + isPreloaded(aPrincipal: nsIPrincipal): Promise<any>; + getState(aPrincipal: nsIPrincipal): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/dom/media/nsIAudioDeviceInfo.idl + +interface nsIAudioDeviceInfo extends nsISupports { + readonly TYPE_UNKNOWN: 0; + readonly TYPE_INPUT: 1; + readonly TYPE_OUTPUT: 2; + readonly STATE_DISABLED: 0; + readonly STATE_UNPLUGGED: 1; + readonly STATE_ENABLED: 2; + readonly PREF_NONE: 0; + readonly PREF_MULTIMEDIA: 1; + readonly PREF_VOICE: 2; + readonly PREF_NOTIFICATION: 4; + readonly PREF_ALL: 15; + readonly FMT_S16LE: 16; + readonly FMT_S16BE: 32; + readonly FMT_F32LE: 4096; + readonly FMT_F32BE: 8192; + + readonly name: string; + readonly groupId: string; + readonly vendor: string; + readonly type: u16; + readonly state: u16; + readonly preferred: u16; + readonly supportedFormat: u16; + readonly defaultFormat: u16; + readonly maxChannels: u32; + readonly defaultRate: u32; + readonly maxRate: u32; + readonly minRate: u32; + readonly maxLatency: u32; + readonly minLatency: u32; +} + +// https://searchfox.org/mozilla-central/source/dom/media/nsIMediaDevice.idl + +interface nsIMediaDevice extends nsISupports { + readonly type: string; + readonly mediaSource: string; + readonly rawId: string; + readonly id: string; + readonly scary: boolean; + readonly canRequestOsLevelPrompt: boolean; + readonly rawName: string; +} + +// https://searchfox.org/mozilla-central/source/dom/media/nsIMediaManager.idl + +interface nsIMediaManagerService extends nsISupports { + readonly STATE_NOCAPTURE: 0; + readonly STATE_CAPTURE_ENABLED: 1; + readonly STATE_CAPTURE_DISABLED: 2; + + readonly activeMediaCaptureWindows: nsIArray; + mediaCaptureWindowState(aWindow: nsIDOMWindow, aCamera: OutParam<u16>, aMicrophone: OutParam<u16>, aScreenShare: OutParam<u16>, aWindowShare: OutParam<u16>, aBrowserShare: OutParam<u16>, devices: OutParam<nsIMediaDevice[]>): void; + sanitizeDeviceIds(sinceWhen: i64): void; +} + +// https://searchfox.org/mozilla-central/source/dom/network/interfaces/nsITCPSocketCallback.idl + +interface nsITCPSocketCallback extends nsISupports { + readonly BUFFER_SIZE: 65536; + + fireErrorEvent(name: string, type: string, errorCode: nsresult): void; + fireDataStringEvent(type: string, data: string): void; + fireEvent(type: string): void; + updateReadyState(readystate: u32): void; + updateBufferedAmount(bufferedAmount: u32, trackingNumber: u32): void; +} + +// https://searchfox.org/mozilla-central/source/dom/network/interfaces/nsIUDPSocketChild.idl + +interface nsIUDPSocketInternal extends nsISupports { + callListenerOpened(): void; + callListenerConnected(): void; + callListenerClosed(): void; + callListenerReceivedData(host: string, port: u16, data: u8[]): void; + callListenerError(message: string, filename: string, lineNumber: u32): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/notification/nsINotificationStorage.idl + +interface nsINotificationStorageCallback extends nsISupports { + handle(id: string, title: string, dir: string, lang: string, body: string, tag: string, icon: string, data: string, behavior: string, serviceWorkerRegistrationScope: string): void; + done(): void; +} + +interface nsINotificationStorage extends nsISupports { + put(origin: string, id: string, title: string, dir: string, lang: string, body: string, tag: string, icon: string, alertName: string, data: string, behavior: string, serviceWorkerRegistrationScope: string): void; + get(origin: string, tag: string, aCallback: nsINotificationStorageCallback): void; + delete(origin: string, id: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentActionResponse.idl + +interface nsIPaymentResponseData extends nsISupports { + readonly GENERAL_RESPONSE: 0; + readonly BASICCARD_RESPONSE: 1; + + readonly type: u32; + init(aType: u32): void; +} + +interface nsIGeneralResponseData extends nsIPaymentResponseData { + readonly data: string; + initData(aData: any): void; +} + +interface nsIBasicCardResponseData extends nsIPaymentResponseData { + readonly cardholderName: string; + readonly cardNumber: string; + readonly expiryMonth: string; + readonly expiryYear: string; + readonly cardSecurityCode: string; + readonly billingAddress: nsIPaymentAddress; + initData(aCardholderName: string, aCardNumber: string, aExpiryMonth: string, aExpiryYear: string, aCardSecurityCode: string, billingAddress: nsIPaymentAddress): void; +} + +interface nsIPaymentActionResponse extends nsISupports { + readonly NO_TYPE: 0; + readonly CANMAKE_ACTION: 2; + readonly SHOW_ACTION: 3; + readonly ABORT_ACTION: 4; + readonly COMPLETE_ACTION: 5; + readonly ABORT_SUCCEEDED: 1; + readonly ABORT_FAILED: 0; + readonly PAYMENT_REJECTED: 0; + readonly PAYMENT_ACCEPTED: 1; + readonly PAYMENT_NOTSUPPORTED: 2; + readonly COMPLETE_SUCCEEDED: 1; + readonly COMPLETE_FAILED: 0; + + readonly requestId: string; + readonly type: u32; +} + +interface nsIPaymentCanMakeActionResponse extends nsIPaymentActionResponse { + readonly result: boolean; + init(aRequestId: string, aResult: boolean): void; +} + +interface nsIPaymentShowActionResponse extends nsIPaymentActionResponse { + readonly acceptStatus: u32; + readonly methodName: string; + readonly data: nsIPaymentResponseData; + readonly payerName: string; + readonly payerEmail: string; + readonly payerPhone: string; + init(aRequestId: string, aAcceptStatus: u32, aMethodName: string, aData: nsIPaymentResponseData, aPayerName: string, aPayerEmail: string, aPayerPhone: string): void; +} + +interface nsIPaymentAbortActionResponse extends nsIPaymentActionResponse { + readonly abortStatus: u32; + init(aRequestId: string, aAbortStatus: u32): void; + isSucceeded(): boolean; +} + +interface nsIPaymentCompleteActionResponse extends nsIPaymentActionResponse { + readonly completeStatus: u32; + init(aRequestId: string, aCompleteStatus: u32): void; + isCompleted(): boolean; +} + +interface nsIMethodChangeDetails extends nsISupports { + readonly GENERAL_DETAILS: 0; + readonly BASICCARD_DETAILS: 1; + + readonly type: u32; + init(aType: u32): void; +} + +interface nsIGeneralChangeDetails extends nsIMethodChangeDetails { + readonly details: string; + initData(aDetails: any): void; +} + +interface nsIBasicCardChangeDetails extends nsIMethodChangeDetails { + readonly billingAddress: nsIPaymentAddress; + initData(billingAddress: nsIPaymentAddress): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentAddress.idl + +interface nsIPaymentAddress extends nsISupports { + readonly country: string; + readonly addressLine: nsIArray; + readonly region: string; + readonly regionCode: string; + readonly city: string; + readonly dependentLocality: string; + readonly postalCode: string; + readonly sortingCode: string; + readonly organization: string; + readonly recipient: string; + readonly phone: string; + init(aCountry: string, aAddressLine: nsIArray, aRegion: string, aRegionCode: string, aCity: string, aDependentLocality: string, aPostalCode: string, aSortingCode: string, aOrganization: string, aRecipient: string, aPhone: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentRequest.idl + +interface nsIPaymentMethodData extends nsISupports { + readonly supportedMethods: string; + readonly data: any; +} + +interface nsIPaymentCurrencyAmount extends nsISupports { + readonly currency: string; + readonly value: string; +} + +interface nsIPaymentItem extends nsISupports { + readonly label: string; + readonly amount: nsIPaymentCurrencyAmount; + readonly pending: boolean; +} + +interface nsIPaymentDetailsModifier extends nsISupports { + readonly supportedMethods: string; + readonly total: nsIPaymentItem; + readonly additionalDisplayItems: nsIArray; + readonly data: any; +} + +interface nsIPaymentShippingOption extends nsISupports { + readonly id: string; + readonly label: string; + readonly amount: nsIPaymentCurrencyAmount; + selected: boolean; +} + +interface nsIPaymentDetails extends nsISupports { + readonly id: string; + readonly totalItem: nsIPaymentItem; + readonly displayItems: nsIArray; + readonly shippingOptions: nsIArray; + readonly modifiers: nsIArray; + readonly error: string; + readonly shippingAddressErrors: any; + readonly payerErrors: any; + readonly paymentMethodErrors: any; +} + +interface nsIPaymentOptions extends nsISupports { + readonly requestPayerName: boolean; + readonly requestPayerEmail: boolean; + readonly requestPayerPhone: boolean; + readonly requestShipping: boolean; + readonly requestBillingAddress: boolean; + readonly shippingType: string; +} + +interface nsIPaymentRequest extends nsISupports { + readonly topOuterWindowId: u64; + readonly topLevelPrincipal: nsIPrincipal; + readonly requestId: string; + readonly completeStatus: string; + readonly paymentMethods: nsIArray; + readonly paymentDetails: nsIPaymentDetails; + readonly paymentOptions: nsIPaymentOptions; + readonly shippingOption: string; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentRequestService.idl + +interface nsIPaymentRequestService extends nsISupports { + getPaymentRequestById(aRequestId: string): nsIPaymentRequest; + enumerate(): nsISimpleEnumerator; + respondPayment(aResponse: nsIPaymentActionResponse): void; + changeShippingAddress(requestId: string, aAddress: nsIPaymentAddress): void; + changeShippingOption(requestId: string, option: string): void; + changePayerDetail(requestId: string, aPayerName: string, aPayerEmail: string, aPayerPhone: string): void; + changePaymentMethod(requestId: string, aMethodName: string, aMethodDetails: nsIMethodChangeDetails): void; + cleanup(): void; + setTestingUIService(aUIService: nsIPaymentUIService): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentUIService.idl + +interface nsIPaymentUIService extends nsISupports { + showPayment(requestId: string): void; + abortPayment(requestId: string): void; + completePayment(requestId: string): void; + updatePayment(requestId: string): void; + closePayment(requestId: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/power/nsIDOMWakeLockListener.idl + +type nsIDOMMozWakeLockListener = Callable<{ + callback(aTopic: string, aState: string): void; +}> + +// https://searchfox.org/mozilla-central/source/dom/power/nsIPowerManagerService.idl + +interface nsIPowerManagerService extends nsISupports { + addWakeLockListener(aListener: nsIDOMMozWakeLockListener): void; + removeWakeLockListener(aListener: nsIDOMMozWakeLockListener): void; + getWakeLockState(aTopic: string): string; + newWakeLock(aTopic: string, aWindow?: mozIDOMWindow): nsIWakeLock; +} + +// https://searchfox.org/mozilla-central/source/dom/power/nsIWakeLock.idl + +interface nsIWakeLock extends nsISupports { + unlock(): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushErrorReporter.idl + +interface nsIPushErrorReporter extends nsISupports { + readonly ACK_DELIVERED: 0; + readonly ACK_DECRYPTION_ERROR: 1; + readonly ACK_NOT_DELIVERED: 2; + readonly UNSUBSCRIBE_MANUAL: 3; + readonly UNSUBSCRIBE_QUOTA_EXCEEDED: 4; + readonly UNSUBSCRIBE_PERMISSION_REVOKED: 5; + readonly DELIVERY_UNCAUGHT_EXCEPTION: 6; + readonly DELIVERY_UNHANDLED_REJECTION: 7; + readonly DELIVERY_INTERNAL_ERROR: 8; + + reportDeliveryError(messageId: string, reason?: u16): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushNotifier.idl + +interface nsIPushNotifier extends nsISupports { + notifyPush(scope: string, principal: nsIPrincipal, messageId: string): void; + notifyPushWithData(scope: string, principal: nsIPrincipal, messageId: string, data: u8[]): void; + notifySubscriptionChange(scope: string, principal: nsIPrincipal): void; + notifySubscriptionModified(scope: string, principal: nsIPrincipal): void; + notifyError(scope: string, principal: nsIPrincipal, message: string, flags: u32): void; +} + +interface nsIPushData extends nsISupports { + text(): string; + json(): any; + binary(): u8[]; +} + +interface nsIPushMessage extends nsISupports { + readonly principal: nsIPrincipal; + readonly data: nsIPushData; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushService.idl + +interface nsIPushSubscription extends nsISupports { + readonly endpoint: string; + readonly pushCount: i64; + readonly lastPush: i64; + readonly quota: i32; + readonly isSystemSubscription: boolean; + readonly p256dhPrivateKey: any; + quotaApplies(): boolean; + isExpired(): boolean; + getKey(name: string): u8[]; +} + +type nsIPushSubscriptionCallback = Callable<{ + onPushSubscription(status: nsresult, subscription: nsIPushSubscription): void; +}> + +type nsIUnsubscribeResultCallback = Callable<{ + onUnsubscribe(status: nsresult, success: boolean): void; +}> + +type nsIPushClearResultCallback = Callable<{ + onClear(status: nsresult): void; +}> + +interface nsIPushService extends nsISupports { + readonly pushTopic: string; + readonly subscriptionChangeTopic: string; + readonly subscriptionModifiedTopic: string; + subscribe(scope: string, principal: nsIPrincipal, callback: nsIPushSubscriptionCallback): void; + subscribeWithKey(scope: string, principal: nsIPrincipal, key: u8[], callback: nsIPushSubscriptionCallback): void; + unsubscribe(scope: string, principal: nsIPrincipal, callback: nsIUnsubscribeResultCallback): void; + getSubscription(scope: string, principal: nsIPrincipal, callback: nsIPushSubscriptionCallback): void; + clearForDomain(domain: string, callback: nsIPushClearResultCallback): void; +} + +interface nsIPushQuotaManager extends nsISupports { + notificationForOriginShown(origin: string): void; + notificationForOriginClosed(origin: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaCallbacks.idl + +type nsIQuotaUsageCallback = Callable<{ + onUsageResult(aRequest: nsIQuotaUsageRequest): void; +}> + +type nsIQuotaCallback = Callable<{ + onComplete(aRequest: nsIQuotaRequest): void; +}> + +// https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaManagerService.idl + +interface nsIQuotaManagerService extends nsISupports { + storageName(): nsIQuotaRequest; + storageInitialized(): nsIQuotaRequest; + temporaryStorageInitialized(): nsIQuotaRequest; + init(): nsIQuotaRequest; + initTemporaryStorage(): nsIQuotaRequest; + initializePersistentOrigin(aPrincipal: nsIPrincipal): nsIQuotaRequest; + initializeTemporaryOrigin(aPersistenceType: string, aPrincipal: nsIPrincipal): nsIQuotaRequest; + initializePersistentClient(aPrincipal: nsIPrincipal, aClientType: string): nsIQuotaRequest; + initializeTemporaryClient(aPersistenceType: string, aPrincipal: nsIPrincipal, aClientType: string): nsIQuotaRequest; + getFullOriginMetadata(aPersistenceType: string, aPrincipal: nsIPrincipal): nsIQuotaRequest; + getUsage(aCallback: nsIQuotaUsageCallback, aGetAll?: boolean): nsIQuotaUsageRequest; + getUsageForPrincipal(aPrincipal: nsIPrincipal, aCallback: nsIQuotaUsageCallback, aFromMemory?: boolean): nsIQuotaUsageRequest; + listOrigins(): nsIQuotaRequest; + clear(): nsIQuotaRequest; + clearStoragesForPrivateBrowsing(): nsIQuotaRequest; + clearStoragesForOriginAttributesPattern(aPattern: string): nsIQuotaRequest; + clearStoragesForPrincipal(aPrincipal: nsIPrincipal, aPersistenceType?: string, aClientType?: string): nsIQuotaRequest; + clearStoragesForOriginPrefix(aPrincipal: nsIPrincipal, aPersistenceType?: string): nsIQuotaRequest; + reset(): nsIQuotaRequest; + resetStoragesForPrincipal(aPrincipal: nsIPrincipal, aPersistenceType?: string, aClientType?: string): nsIQuotaRequest; + persisted(aPrincipal: nsIPrincipal): nsIQuotaRequest; + persist(aPrincipal: nsIPrincipal): nsIQuotaRequest; + estimate(aPrincipal: nsIPrincipal): nsIQuotaRequest; +} + +// https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaRequests.idl + +interface nsIQuotaRequestBase extends nsISupports { + readonly principal: nsIPrincipal; + readonly resultCode: nsresult; + readonly resultName: string; +} + +interface nsIQuotaUsageRequest extends nsIQuotaRequestBase { + readonly result: nsIVariant; + callback: nsIQuotaUsageCallback; + cancel(): void; +} + +interface nsIQuotaRequest extends nsIQuotaRequestBase { + readonly result: nsIVariant; + callback: nsIQuotaCallback; +} + +// https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaResults.idl + +interface nsIQuotaFullOriginMetadataResult extends nsISupports { + readonly suffix: string; + readonly group: string; + readonly origin: string; + readonly storageOrigin: string; + readonly persistenceType: string; + readonly persisted: boolean; + readonly lastAccessTime: i64; +} + +interface nsIQuotaUsageResult extends nsISupports { + readonly origin: string; + readonly persisted: boolean; + readonly usage: u64; + readonly lastAccessed: u64; +} + +interface nsIQuotaOriginUsageResult extends nsISupports { + readonly databaseUsage: u64; + readonly fileUsage: u64; + readonly usage: u64; + readonly databaseUsageIsExplicit: boolean; + readonly fileUsageIsExplicit: boolean; + readonly totalUsageIsExplicit: boolean; +} + +interface nsIQuotaEstimateResult extends nsISupports { + readonly usage: u64; + readonly limit: u64; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIContentSecurityManager.idl + +interface nsIContentSecurityManager extends nsISupports { + performSecurityCheck(aChannel: nsIChannel, aStreamListener: nsIStreamListener): nsIStreamListener; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIContentSecurityPolicy.idl + +} // global + +declare namespace nsIContentSecurityPolicy { + +enum CSPDirective { + NO_DIRECTIVE = 0, + DEFAULT_SRC_DIRECTIVE = 1, + SCRIPT_SRC_DIRECTIVE = 2, + OBJECT_SRC_DIRECTIVE = 3, + STYLE_SRC_DIRECTIVE = 4, + IMG_SRC_DIRECTIVE = 5, + MEDIA_SRC_DIRECTIVE = 6, + FRAME_SRC_DIRECTIVE = 7, + FONT_SRC_DIRECTIVE = 8, + CONNECT_SRC_DIRECTIVE = 9, + REPORT_URI_DIRECTIVE = 10, + FRAME_ANCESTORS_DIRECTIVE = 11, + REFLECTED_XSS_DIRECTIVE = 12, + BASE_URI_DIRECTIVE = 13, + FORM_ACTION_DIRECTIVE = 14, + WEB_MANIFEST_SRC_DIRECTIVE = 15, + UPGRADE_IF_INSECURE_DIRECTIVE = 16, + CHILD_SRC_DIRECTIVE = 17, + BLOCK_ALL_MIXED_CONTENT = 18, + SANDBOX_DIRECTIVE = 19, + WORKER_SRC_DIRECTIVE = 20, + SCRIPT_SRC_ELEM_DIRECTIVE = 21, + SCRIPT_SRC_ATTR_DIRECTIVE = 22, + STYLE_SRC_ELEM_DIRECTIVE = 23, + STYLE_SRC_ATTR_DIRECTIVE = 24, +} + +} + +declare global { + +interface nsIContentSecurityPolicy extends nsISerializable, Enums<typeof nsIContentSecurityPolicy.CSPDirective> { + readonly VIOLATION_TYPE_EVAL: 1; + readonly VIOLATION_TYPE_WASM_EVAL: 2; + + getPolicy(index: u32): string; + readonly policyCount: u32; + readonly upgradeInsecureRequests: boolean; + readonly blockAllMixedContent: boolean; + readonly enforcesFrameAncestors: boolean; + appendPolicy(policyString: string, reportOnly: boolean, deliveredViaMetaTag: boolean): void; + getAllowsInline(aDirective: nsIContentSecurityPolicy.CSPDirective, aHasUnsafeHash: boolean, aNonce: string, aParserCreated: boolean, aTriggeringElement: Element, aCSPEventListener: nsICSPEventListener, aContentOfPseudoScript: string, aLineNumber: u32, aColumnNumber: u32): boolean; + getAllowsEval(shouldReportViolations: OutParam<boolean>): boolean; + getAllowsWasmEval(shouldReportViolations: OutParam<boolean>): boolean; + getCSPSandboxFlags(): u32; + logViolationDetails(violationType: u16, triggeringElement: Element, aCSPEventListener: nsICSPEventListener, sourceFile: string, scriptSample: string, lineNum: i32, columnNum: i32, nonce?: string, content?: string): void; + setRequestContextWithDocument(aDocument: Document): void; + setRequestContextWithPrincipal(aRequestPrincipal: nsIPrincipal, aSelfURI: nsIURI, aReferrer: string, aInnerWindowId: u64): void; + permitsAncestry(aLoadInfo: nsILoadInfo): boolean; + permits(aTriggeringElement: Element, aCSPEventListener: nsICSPEventListener, aURI: nsIURI, aDir: nsIContentSecurityPolicy.CSPDirective, aSpecific: boolean, aSendViolationReports: boolean): boolean; + shouldLoad(aContentType: nsContentPolicyType, aCSPEventListener: nsICSPEventListener, aLoadInfo: nsILoadInfo, aContentLocation: nsIURI, aOriginalURIIfRedirect: nsIURI, aSendViolationReports: boolean): i16; + toJSON(): string; +} + +type nsICSPEventListener = Callable<{ + onCSPViolationEvent(aJSON: string): void; +}> + +// https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIReferrerInfo.idl + +} // global + +declare namespace nsIReferrerInfo { + +enum ReferrerPolicyIDL { + EMPTY = 0, + NO_REFERRER_WHEN_DOWNGRADE = 1, + NO_REFERRER = 2, + ORIGIN = 3, + ORIGIN_WHEN_CROSS_ORIGIN = 4, + UNSAFE_URL = 5, + SAME_ORIGIN = 6, + STRICT_ORIGIN = 7, + STRICT_ORIGIN_WHEN_CROSS_ORIGIN = 8, +} + +} + +declare global { + +interface nsIReferrerInfo extends nsISerializable, Enums<typeof nsIReferrerInfo.ReferrerPolicyIDL> { + readonly originalReferrer: nsIURI; + readonly referrerPolicy: nsIReferrerInfo.ReferrerPolicyIDL; + getReferrerPolicyString(): string; + readonly sendReferrer: boolean; + readonly computedReferrerSpec: string; + equals(other: nsIReferrerInfo): boolean; + init(aReferrerPolicy: nsIReferrerInfo.ReferrerPolicyIDL, aSendReferrer?: boolean, aOriginalReferrer?: nsIURI): void; + initWithDocument(aDocument: Document): void; + initWithElement(aNode: Element): void; +} + +// https://searchfox.org/mozilla-central/source/dom/security/nsIHttpsOnlyModePermission.idl + +interface nsIHttpsOnlyModePermission extends nsISupports { + readonly LOAD_INSECURE_DEFAULT: 0; + readonly LOAD_INSECURE_ALLOW: 1; + readonly LOAD_INSECURE_BLOCK: 2; + readonly LOAD_INSECURE_ALLOW_SESSION: 9; +} + +// https://searchfox.org/mozilla-central/source/dom/serializers/nsIDocumentEncoder.idl + +interface nsIDocumentEncoderNodeFixup extends nsISupports { + fixupNode(aNode: Node, aSerializeCloneKids: OutParam<boolean>): Node; +} + +interface nsIDocumentEncoder extends nsISupports { + readonly OutputSelectionOnly: 1; + readonly OutputFormatted: 2; + readonly OutputRaw: 4; + readonly OutputBodyOnly: 8; + readonly OutputPreformatted: 16; + readonly OutputWrap: 32; + readonly OutputFormatFlowed: 64; + readonly OutputAbsoluteLinks: 128; + readonly OutputCRLineBreak: 512; + readonly OutputLFLineBreak: 1024; + readonly OutputNoScriptContent: 2048; + readonly OutputNoFramesContent: 4096; + readonly OutputNoFormattingInPre: 8192; + readonly OutputEncodeBasicEntities: 16384; + readonly OutputPersistNBSP: 131072; + readonly OutputDontRewriteEncodingDeclaration: 262144; + readonly SkipInvisibleContent: 524288; + readonly OutputFormatDelSp: 1048576; + readonly OutputDropInvisibleBreak: 2097152; + readonly OutputIgnoreMozDirty: 4194304; + readonly OutputForPlainTextClipboardCopy: 33554432; + readonly OutputRubyAnnotation: 67108864; + readonly OutputDisallowLineBreaking: 134217728; + readonly RequiresReinitAfterOutput: 268435456; + + init(aDocument: Document, aMimeType: string, aFlags: u32): void; + setSelection(aSelection: Selection): void; + setRange(aRange: Range): void; + setNode(aNode: Node): void; + setContainerNode(aContainer: Node): void; + setCharset(aCharset: string): void; + setWrapColumn(aWrapColumn: u32): void; + readonly mimeType: string; + encodeToStream(aStream: nsIOutputStream): void; + encodeToString(): string; + encodeToStringWithContext(aContextString: OutParam<string>, aInfoString: OutParam<string>): string; + encodeToStringWithMaxLength(aMaxLength: u32): string; + setNodeFixup(aFixup: nsIDocumentEncoderNodeFixup): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/sidebar/nsIWebProtocolHandlerRegistrar.idl + +interface nsIWebProtocolHandlerRegistrar extends nsISupports { + registerProtocolHandler(protocol: string, uri: nsIURI, title: string, documentURI: nsIURI, windowOrBrowser: nsISupports): void; + removeProtocolHandler(protocol: string, uri: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBCallbacks.idl + +type nsISDBCallback = Callable<{ + onComplete(aRequest: nsISDBRequest): void; +}> + +type nsISDBCloseCallback = Callable<{ + onClose(aConnection: nsISDBConnection): void; +}> + +// https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBConnection.idl + +interface nsISDBConnection extends nsISupports { + init(aPrincipal: nsIPrincipal, aPersistenceType?: string): void; + open(aName: string): nsISDBRequest; + seek(offset: u64): nsISDBRequest; + read(size: u64): nsISDBRequest; + write(value: any): nsISDBRequest; + close(): nsISDBRequest; + closeCallback: nsISDBCloseCallback; +} + +// https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBRequest.idl + +interface nsISDBRequest extends nsISupports { + readonly result: nsIVariant; + readonly resultCode: nsresult; + callback: nsISDBCallback; +} + +// https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBResults.idl + +interface nsISDBResult extends nsISupports { + getAsArray(): u8[]; + getAsArrayBuffer(): any; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/storage/nsIDOMStorageManager.idl + +interface nsIDOMStorageManager extends nsISupports { + precacheStorage(aPrincipal: nsIPrincipal, aStoragePrincipal: nsIPrincipal): Storage; + createStorage(aWindow: mozIDOMWindow, aPrincipal: nsIPrincipal, aStoragePrincipal: nsIPrincipal, aDocumentURI: string, aPrivate?: boolean): Storage; + getStorage(aWindow: mozIDOMWindow, aPrincipal: nsIPrincipal, aStoragePrincipal: nsIPrincipal, aPrivate?: boolean): Storage; + cloneStorage(aStorageToCloneFrom: Storage): void; + checkStorage(aPrincipal: nsIPrincipal, aStorage: Storage): boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/storage/nsIStorageActivityService.idl + +interface nsIStorageActivityService extends nsISupports { + getActiveOrigins(from: PRTime, to: PRTime): nsIArray; + moveOriginInTime(origin: nsIPrincipal, when: PRTime): void; + testOnlyReset(): void; +} + +// https://searchfox.org/mozilla-central/source/dom/storage/nsISessionStorageService.idl + +interface nsISessionStorageService extends nsISupports { + clearStoragesForOrigin(aPrincipal: nsIPrincipal): void; +} + +// https://searchfox.org/mozilla-central/source/dom/system/nsIOSPermissionRequest.idl + +interface nsIOSPermissionRequest extends nsISupports { + readonly PERMISSION_STATE_NOTDETERMINED: 0; + readonly PERMISSION_STATE_RESTRICTED: 1; + readonly PERMISSION_STATE_DENIED: 2; + readonly PERMISSION_STATE_AUTHORIZED: 3; + + getMediaCapturePermissionState(aVideo: OutParam<u16>, aAudio: OutParam<u16>): void; + getAudioCapturePermissionState(aAudio: OutParam<u16>): void; + getVideoCapturePermissionState(aVideo: OutParam<u16>): void; + getScreenCapturePermissionState(aScreen: OutParam<u16>): void; + requestVideoCapturePermission(): Promise<any>; + requestAudioCapturePermission(): Promise<any>; + maybeRequestScreenCapturePermission(): void; +} + +// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnArgs.idl + +// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnAttObj.idl + +// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnPromise.idl + +// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnResult.idl + +// https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnService.idl + +interface nsICredentialParameters extends nsISupports { + readonly credentialId: string; + readonly isResidentCredential: boolean; + readonly rpId: string; + readonly privateKey: string; + readonly userHandle: string; + readonly signCount: u32; +} + +interface nsIWebAuthnAutoFillEntry extends nsISupports { + readonly PROVIDER_UNKNOWN: 0; + readonly PROVIDER_TEST_TOKEN: 1; + readonly PROVIDER_PLATFORM_WINDOWS: 2; + readonly PROVIDER_PLATFORM_MACOS: 3; + readonly PROVIDER_PLATFORM_ANDROID: 4; + + readonly provider: u8; + readonly userName: string; + readonly rpId: string; + readonly credentialId: u8[]; +} + +interface nsIWebAuthnService extends nsISupports { + readonly isUVPAA: boolean; + makeCredential(aTransactionId: u64, browsingContextId: u64, args: nsIWebAuthnRegisterArgs, promise: nsIWebAuthnRegisterPromise): void; + getAssertion(aTransactionId: u64, browsingContextId: u64, args: nsIWebAuthnSignArgs, promise: nsIWebAuthnSignPromise): void; + cancel(aTransactionId: u64): void; + hasPendingConditionalGet(aBrowsingContextId: u64, aOrigin: string): u64; + getAutoFillEntries(aTransactionId: u64): nsIWebAuthnAutoFillEntry[]; + selectAutoFillEntry(aTransactionId: u64, aCredentialId: u8[]): void; + resumeConditionalGet(aTransactionId: u64): void; + pinCallback(aTransactionId: u64, aPin: string): void; + resumeMakeCredential(aTransactionId: u64, aForceNoneAttestation: boolean): void; + selectionCallback(aTransactionId: u64, aIndex: u64): void; + addVirtualAuthenticator(protocol: string, transport: string, hasResidentKey: boolean, hasUserVerification: boolean, isUserConsenting: boolean, isUserVerified: boolean): u64; + removeVirtualAuthenticator(authenticatorId: u64): void; + addCredential(authenticatorId: u64, credentialId: string, isResidentCredential: boolean, rpId: string, privateKey: string, userHandle: string, signCount: u32): void; + getCredentials(authenticatorId: u64): nsICredentialParameters[]; + removeCredential(authenticatorId: u64, credentialId: string): void; + removeAllCredentials(authenticatorId: u64): void; + setUserVerified(authenticatorId: u64, isUserVerified: boolean): void; + listen(): void; + runCommand(aCommand: string): void; +} + +// https://searchfox.org/mozilla-central/source/dom/media/webspeech/recognition/nsISpeechRecognitionService.idl + +// https://searchfox.org/mozilla-central/source/dom/media/webspeech/synth/nsISpeechService.idl + +interface nsISpeechTaskCallback extends nsISupports { + onPause(): void; + onResume(): void; + onCancel(): void; + onVolumeChanged(aVolume: float): void; +} + +interface nsISpeechTask extends nsISupports { + setup(aCallback: nsISpeechTaskCallback): void; + dispatchStart(): void; + dispatchEnd(aElapsedTime: float, aCharIndex: u32): void; + dispatchPause(aElapsedTime: float, aCharIndex: u32): void; + dispatchResume(aElapsedTime: float, aCharIndex: u32): void; + dispatchError(aElapsedTime: float, aCharIndex: u32): void; + dispatchBoundary(aName: string, aElapsedTime: float, aCharIndex: u32, aCharLength?: u32): void; + dispatchMark(aName: string, aElapsedTime: float, aCharIndex: u32): void; +} + +interface nsISpeechService extends nsISupports { + speak(aText: string, aUri: string, aVolume: float, aRate: float, aPitch: float, aTask: nsISpeechTask): void; +} + +// https://searchfox.org/mozilla-central/source/dom/media/webspeech/synth/nsISynthVoiceRegistry.idl + +interface nsISynthVoiceRegistry extends nsISupports { + addVoice(aService: nsISpeechService, aUri: string, aName: string, aLang: string, aLocalService: boolean, aQueuesUtterances: boolean): void; + removeVoice(aService: nsISpeechService, aUri: string): void; + notifyVoicesChanged(): void; + notifyVoicesError(aError: string): void; + setDefaultVoice(aUri: string, aIsDefault: boolean): void; + readonly voiceCount: u32; + getVoice(aIndex: u32): string; + isDefaultVoice(aUri: string): boolean; + isLocalVoice(aUri: string): boolean; + getVoiceLang(aUri: string): string; + getVoiceName(aUri: string): string; +} + +// https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerChannelInfo.idl + +interface nsIWorkerChannelLoadInfo extends nsISupports { + workerAssociatedBrowsingContextID: u64; + readonly workerAssociatedBrowsingContext: BrowsingContext; +} + +interface nsIWorkerChannelInfo extends nsISupports { + loadInfo: nsIWorkerChannelLoadInfo; + readonly channelId: u64; +} + +// https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerDebugger.idl + +interface nsIWorkerDebuggerListener extends nsISupports { + onClose(): void; + onError(filename: string, lineno: u32, message: string): void; + onMessage(message: string): void; +} + +interface nsIWorkerDebugger extends nsISupports { + readonly TYPE_DEDICATED: 0; + readonly TYPE_SHARED: 1; + readonly TYPE_SERVICE: 2; + + readonly isClosed: boolean; + readonly isChrome: boolean; + readonly isInitialized: boolean; + readonly parent: nsIWorkerDebugger; + readonly type: u32; + readonly url: string; + readonly window: mozIDOMWindow; + readonly windowIDs: u64[]; + readonly principal: nsIPrincipal; + readonly serviceWorkerID: u32; + readonly id: string; + initialize(url: string): void; + postMessage(message: string): void; + addListener(listener: nsIWorkerDebuggerListener): void; + removeListener(listener: nsIWorkerDebuggerListener): void; + setDebuggerReady(ready: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerDebuggerManager.idl + +interface nsIWorkerDebuggerManagerListener extends nsISupports { + onRegister(aDebugger: nsIWorkerDebugger): void; + onUnregister(aDebugger: nsIWorkerDebugger): void; +} + +interface nsIWorkerDebuggerManager extends nsISupports { + getWorkerDebuggerEnumerator(): nsISimpleEnumerator; + addListener(listener: nsIWorkerDebuggerManagerListener): void; + removeListener(listener: nsIWorkerDebuggerManagerListener): void; +} + +// https://searchfox.org/mozilla-central/source/dom/xslt/xslt/txIEXSLTFunctions.idl + +interface txIEXSLTFunctions extends nsISupports { + match(str: string, regex: string, flags: string, doc: Document): DocumentFragment; + replace(str: string, regex: string, flags: string, replace: string): string; + test(str: string, regex: string, flags: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULButtonElement.idl + +interface nsIDOMXULButtonElement extends nsIDOMXULControlElement { + type: string; + open: boolean; + checked: boolean; + group: string; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULCommandDispatcher.idl + +interface nsIDOMXULCommandDispatcher extends nsISupports { + focusedElement: Element; + focusedWindow: mozIDOMWindowProxy; + addCommandUpdater(updater: Element, events: string, targets: string): void; + removeCommandUpdater(updater: Element): void; + updateCommands(eventName: string): void; + getControllerForCommand(command: string): nsIController; + getControllers(): nsIControllers; + advanceFocus(): void; + rewindFocus(): void; + advanceFocusIntoSubtree(elt: Element): void; + lock(): void; + unlock(): void; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULContainerElement.idl + +interface nsIDOMXULContainerItemElement extends nsISupports { + readonly parentContainer: Element; +} + +interface nsIDOMXULContainerElement extends nsIDOMXULContainerItemElement { +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULControlElement.idl + +interface nsIDOMXULControlElement extends nsISupports { + disabled: boolean; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULMenuListElement.idl + +interface nsIDOMXULMenuListElement extends nsIDOMXULSelectControlElement { + editable: boolean; + open: boolean; + readonly label: string; + image: string; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl + +interface nsIDOMXULMultiSelectControlElement extends nsIDOMXULSelectControlElement { + selType: string; + currentItem: Element; + currentIndex: i32; + readonly selectedItems: NodeList; + addItemToSelection(item: nsIDOMXULSelectControlItemElement): void; + removeItemFromSelection(item: nsIDOMXULSelectControlItemElement): void; + toggleItemSelection(item: nsIDOMXULSelectControlItemElement): void; + selectItem(item: nsIDOMXULSelectControlItemElement): void; + selectItemRange(startItem: nsIDOMXULSelectControlItemElement, item: nsIDOMXULSelectControlItemElement): void; + selectAll(): void; + clearSelection(): void; + readonly selectedCount: i32; + getSelectedItem(index: i32): Element; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULRadioGroupElement.idl + +interface nsIDOMXULRadioGroupElement extends nsISupports { + focusedItem: Element; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULRelatedElement.idl + +interface nsIDOMXULRelatedElement extends nsISupports { + getRelatedElement(aElement: Node): Element; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl + +interface nsIDOMXULSelectControlElement extends nsIDOMXULControlElement { + selectedItem: Element; + selectedIndex: i32; + value: string; + readonly itemCount: u32; + getIndexOfItem(item: nsIDOMXULSelectControlItemElement): i32; + getItemAtIndex(index: i32): Element; +} + +// https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl + +interface nsIDOMXULSelectControlItemElement extends nsISupports { + disabled: boolean; + image: string; + label: string; + accessKey: string; + command: string; + value: string; + readonly selected: boolean; + readonly control: Element; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/downloads/mozIDownloadPlatform.idl + +interface mozIDownloadPlatform extends nsISupports { + readonly ZONE_MY_COMPUTER: 0; + readonly ZONE_INTRANET: 1; + readonly ZONE_TRUSTED: 2; + readonly ZONE_INTERNET: 3; + readonly ZONE_RESTRICTED: 4; + + downloadDone(aSource: nsIURI, aReferrer: nsIURI, aTarget: nsIFile, aContentType: string, aIsPrivate: boolean): Promise<any>; + mapUrlToZone(aURL: string): u32; +} + +// https://searchfox.org/mozilla-central/source/editor/nsIDocumentStateListener.idl + +interface nsIDocumentStateListener extends nsISupports { + NotifyDocumentWillBeDestroyed(): void; + NotifyDocumentStateChanged(aNowDirty: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/editor/nsIEditActionListener.idl + +interface nsIEditActionListener extends nsISupports { + DidDeleteNode(aChild: Node, aResult: nsresult): void; + DidInsertText(aTextNode: CharacterData, aOffset: i32, aString: string, aResult: nsresult): void; + WillDeleteText(aTextNode: CharacterData, aOffset: i32, aLength: i32): void; + WillDeleteRanges(aRangesToDelete: Range[]): void; +} + +// https://searchfox.org/mozilla-central/source/editor/nsIEditor.idl + +interface nsIEditor extends nsISupports { + readonly eNone: 0; + readonly eNext: 1; + readonly ePrevious: 2; + readonly eNextWord: 3; + readonly ePreviousWord: 4; + readonly eToBeginningOfLine: 5; + readonly eToEndOfLine: 6; + readonly eStrip: 0; + readonly eNoStrip: 1; + readonly eEditorPlaintextMask: 1; + readonly eEditorSingleLineMask: 2; + readonly eEditorPasswordMask: 4; + readonly eEditorReadonlyMask: 8; + readonly eEditorMailMask: 32; + readonly eEditorEnableWrapHackMask: 64; + readonly eEditorAllowInteraction: 512; + readonly eEditorRightToLeft: 2048; + readonly eEditorLeftToRight: 4096; + readonly eEditorSkipSpellCheck: 8192; + readonly eNewlinesPasteIntact: 0; + readonly eNewlinesPasteToFirst: 1; + readonly eNewlinesReplaceWithSpaces: 2; + readonly eNewlinesStrip: 3; + readonly eNewlinesReplaceWithCommas: 4; + readonly eNewlinesStripSurroundingWhitespace: 5; + + readonly selection: Selection; + setAttributeOrEquivalent(element: Element, sourceAttrName: string, sourceAttrValue: string, aSuppressTransaction: boolean): void; + removeAttributeOrEquivalent(element: Element, sourceAttrName: string, aSuppressTransaction: boolean): void; + flags: u32; + contentsMIMEType: string; + readonly isDocumentEditable: boolean; + readonly isSelectionEditable: boolean; + readonly document: Document; + readonly rootElement: Element; + readonly selectionController: nsISelectionController; + deleteSelection(action: i16, stripWrappers: i16): void; + readonly documentIsEmpty: boolean; + readonly documentModified: boolean; + documentCharacterSet: string; + resetModificationCount(): void; + getModificationCount(): i32; + incrementModificationCount(aModCount: i32): void; + enableUndo(enable: boolean): void; + readonly undoRedoEnabled: boolean; + readonly canUndo: boolean; + readonly canRedo: boolean; + clearUndoRedo(): void; + undo(): void; + undoAll(): void; + redo(): void; + beginTransaction(): void; + endTransaction(): void; + getInlineSpellChecker(autoCreate: boolean): nsIInlineSpellChecker; + setSpellcheckUserOverride(enable: boolean): void; + cut(): void; + canCut(): boolean; + copy(): void; + canCopy(): boolean; + paste(aClipboardType: i32): void; + pasteTransferable(aTransferable: nsITransferable): void; + canPaste(aClipboardType: i32): boolean; + selectAll(): void; + beginningOfDocument(): void; + endOfDocument(): void; + setAttribute(aElement: Element, attributestr: string, attvalue: string): void; + removeAttribute(aElement: Element, aAttribute: string): void; + cloneAttributes(aDestElement: Element, aSourceElement: Element): void; + insertNode(node: Node, parent: Node, aPosition: u32, aPreserveSelection?: boolean): void; + deleteNode(child: Node, aPreserveSelection?: boolean): void; + outputToString(formatType: string, flags: u32): string; + addEditActionListener(listener: nsIEditActionListener): void; + removeEditActionListener(listener: nsIEditActionListener): void; + addDocumentStateListener(listener: nsIDocumentStateListener): void; + removeDocumentStateListener(listener: nsIDocumentStateListener): void; + forceCompositionEnd(): void; + readonly composing: boolean; + unmask(aStart?: u32, aEnd?: i64, aTimeout?: u32): void; + mask(): void; + readonly unmaskedStart: u32; + readonly unmaskedEnd: u32; + readonly autoMaskingEnabled: boolean; + readonly passwordMask: string; + readonly textLength: u32; + newlineHandling: i32; + insertText(aStringToInsert: string): void; + insertLineBreak(): void; +} + +// https://searchfox.org/mozilla-central/source/editor/nsIEditorMailSupport.idl + +interface nsIEditorMailSupport extends nsISupports { + insertAsCitedQuotation(aQuotedText: string, aCitation: string, aInsertHTML: boolean): Node; + rewrap(aRespectNewlines: boolean): void; + insertTextWithQuotations(aStringToInsert: string): void; + wrapWidth: i32; +} + +// https://searchfox.org/mozilla-central/source/editor/nsIEditorSpellCheck.idl + +interface nsIEditorSpellCheck extends nsISupports { + readonly FILTERTYPE_NORMAL: 1; + readonly FILTERTYPE_MAIL: 2; + + canSpellCheck(): boolean; + InitSpellChecker(editor: nsIEditor, enableSelectionChecking: boolean, callback?: nsIEditorSpellCheckCallback): void; + GetNextMisspelledWord(): string; + GetSuggestedWord(): string; + CheckCurrentWord(suggestedWord: string): boolean; + suggest(aCheckingWorkd: string, aMaxCount: u32): Promise<any>; + ReplaceWord(misspelledWord: string, replaceWord: string, allOccurrences: boolean): void; + IgnoreWordAllOccurrences(word: string): void; + GetPersonalDictionary(): void; + GetPersonalDictionaryWord(): string; + AddWordToDictionary(word: string): void; + RemoveWordFromDictionary(word: string): void; + GetDictionaryList(): string[]; + getCurrentDictionaries(): string[]; + setCurrentDictionaries(dictionaries: string[]): Promise<any>; + UninitSpellChecker(): void; + setFilterType(filterType: u32): void; + UpdateCurrentDictionary(callback?: nsIEditorSpellCheckCallback): void; +} + +type nsIEditorSpellCheckCallback = Callable<{ + editorSpellCheckDone(): void; +}> + +// https://searchfox.org/mozilla-central/source/editor/nsIHTMLAbsPosEditor.idl + +interface nsIHTMLAbsPosEditor extends nsISupports { + absolutePositioningEnabled: boolean; + snapToGridEnabled: boolean; + gridSize: u32; +} + +// https://searchfox.org/mozilla-central/source/editor/nsIHTMLEditor.idl + +interface nsIHTMLEditor extends nsISupports { + readonly eLeft: 0; + readonly eCenter: 1; + readonly eRight: 2; + readonly eJustify: 3; + + setInlineProperty(aProperty: string, aAttribute: string, aValue: string): void; + getInlinePropertyWithAttrValue(aProperty: string, aAttribute: string, aValue: string, aFirst: OutParam<boolean>, aAny: OutParam<boolean>, aAll: OutParam<boolean>): string; + removeInlineProperty(aProperty: string, aAttribute: string): void; + nodeIsBlock(aNode: Node): boolean; + insertHTML(aInputString: string): void; + rebuildDocumentFromSource(aSourceString: string): void; + insertElementAtSelection(aElement: Element, aDeleteSelection: boolean): void; + updateBaseURL(): void; + selectElement(aElement: Element): void; + getParagraphState(aMixed: OutParam<boolean>): string; + getFontFaceState(aMixed: OutParam<boolean>): string; + getHighlightColorState(aMixed: OutParam<boolean>): string; + getListState(aMixed: OutParam<boolean>, aOL: OutParam<boolean>, aUL: OutParam<boolean>, aDL: OutParam<boolean>): void; + getListItemState(aMixed: OutParam<boolean>, aLI: OutParam<boolean>, aDT: OutParam<boolean>, aDD: OutParam<boolean>): void; + getAlignment(aMixed: OutParam<boolean>, aAlign: OutParam<i16>): void; + makeOrChangeList(aListType: string, entireList: boolean, aBulletType: string): void; + removeList(aListType: string): void; + getElementOrParentByTagName(aTagName: string, aNode: Node): Element; + getSelectedElement(aTagName: string): nsISupports; + createElementWithDefaults(aTagName: string): Element; + insertLinkAroundSelection(aAnchorElement: Element): void; + setBackgroundColor(aColor: string): void; + isCSSEnabled: boolean; + checkSelectionStateForAnonymousButtons(): void; + isAnonymousElement(aElement: Element): boolean; + returnInParagraphCreatesNewParagraph: boolean; +} + +// https://searchfox.org/mozilla-central/source/editor/nsIHTMLInlineTableEditor.idl + +interface nsIHTMLInlineTableEditor extends nsISupports { + inlineTableEditingEnabled: boolean; +} + +// https://searchfox.org/mozilla-central/source/editor/nsIHTMLObjectResizer.idl + +interface nsIHTMLObjectResizer extends nsISupports { + readonly eTopLeft: 0; + readonly eTop: 1; + readonly eTopRight: 2; + readonly eLeft: 3; + readonly eRight: 4; + readonly eBottomLeft: 5; + readonly eBottom: 6; + readonly eBottomRight: 7; + + objectResizingEnabled: boolean; + hideResizers(): void; +} + +// https://searchfox.org/mozilla-central/source/editor/nsITableEditor.idl + +interface nsITableEditor extends nsISupports { + readonly eNoSearch: 0; + readonly ePreviousColumn: 1; + readonly ePreviousRow: 2; + + insertTableCell(aNumberOfColumnsToInsert: i32, aInsertAfterSelectedCell: boolean): void; + insertTableColumn(aNumberOfColumnsToInsert: i32, aInsertAfterSelectedCell: boolean): void; + insertTableRow(aNumberOfRowsToInsert: i32, aInsertAfterSelectedCell: boolean): void; + deleteTable(): void; + deleteTableCellContents(): void; + deleteTableCell(aNumberOfCellsToDelete: i32): void; + deleteTableColumn(aNumberOfColumnsToDelete: i32): void; + deleteTableRow(aNumberOfRowsToDelete: i32): void; + selectTableCell(): void; + selectTableRow(): void; + selectTableColumn(): void; + selectTable(): void; + selectAllTableCells(): void; + switchTableCellHeaderType(aSourceCell: Element): Element; + joinTableCells(aMergeNonContiguousContents: boolean): void; + splitTableCell(): void; + normalizeTable(aTable: Element): void; + getCellIndexes(aCellElement: Element, aRowIndex: OutParam<i32>, aColumnIndex: OutParam<i32>): void; + getTableSize(aTableOrElementInTable: Element, aRowCount: OutParam<i32>, aColCount: OutParam<i32>): void; + getCellAt(aTableElement: Element, aRowIndex: i32, aColumnIndex: i32): Element; + getCellDataAt(aTableElement: Element, aRowIndex: i32, aColumnIndex: i32, aCellElement: OutParam<Element>, aStartRowIndex: OutParam<i32>, aStartColumnIndex: OutParam<i32>, aRowSpan: OutParam<i32>, aColSpan: OutParam<i32>, aEffectiveRowSpan: OutParam<i32>, aEffectiveColSpan: OutParam<i32>, aIsSelected: OutParam<boolean>): void; + getFirstRow(aTableElement: Element): Element; + getSelectedOrParentTableElement(aTagName: OutParam<string>, aCount: OutParam<i32>): Element; + getSelectedCellsType(aElement: Element): u32; + getFirstSelectedCellInTable(aRowIndex: OutParam<i32>, aColIndex: OutParam<i32>): Element; + getSelectedCells(): Element[]; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/enterprisepolicies/nsIEnterprisePolicies.idl + +interface nsIEnterprisePolicies extends nsISupports { + readonly UNINITIALIZED: -1; + readonly INACTIVE: 0; + readonly ACTIVE: 1; + readonly FAILED: 2; + + readonly status: i16; + isAllowed(feature: string): boolean; + getActivePolicies(): any; + getSupportMenu(): any; + getExtensionPolicy(extensionID: string): any; + getExtensionSettings(extensionID: string): any; + mayInstallAddon(addon: any): boolean; + allowedInstallSource(uri: nsIURI): boolean; + isExemptExecutableExtension(url: string, extension: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/amIAddonManagerStartup.idl + +interface amIAddonManagerStartup extends nsISupports { + readStartupData(): any; + registerChrome(manifestURI: nsIURI, entries: any): nsIJSRAIIHelper; + encodeBlob(value: any): any; + decodeBlob(value: any): any; + enumerateJAR(uri: nsIURI, pattern: string): string[]; + enumerateJARSubtree(uri: nsIURI): string[]; + initializeURLPreloader(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/amIWebInstallPrompt.idl + +interface amIWebInstallPrompt extends nsISupports { + confirm(aBrowser: Element, aUri: nsIURI, aInstalls: nsIVariant[]): void; +} + +// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsCExternalHandlerService.idl + +// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIContentDispatchChooser.idl + +interface nsIContentDispatchChooser extends nsISupports { + handleURI(aHandler: nsIHandlerInfo, aURI: nsIURI, aTriggeringPrincipal: nsIPrincipal, aBrowsingContext: BrowsingContext, aWasTriggeredExternally?: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIExternalHelperAppService.idl + +interface nsIExternalHelperAppService extends nsISupports { + doContent(aMimeContentType: string, aChannel: nsIChannel, aContentContext: nsIInterfaceRequestor, aForceSave: boolean, aWindowContext?: nsIInterfaceRequestor): nsIStreamListener; + createListener(aMimeContentType: string, aChannel: nsIChannel, aContentContext: BrowsingContext, aForceSave: boolean, aWindowContext?: nsIInterfaceRequestor): nsIStreamListener; + applyDecodingForExtension(aExtension: string, aEncodingType: string): boolean; +} + +interface nsPIExternalAppLauncher extends nsISupports { + deleteTemporaryFileOnExit(aTemporaryFile: nsIFile): void; + deleteTemporaryPrivateFileWhenPossible(aTemporaryFile: nsIFile): void; +} + +interface nsIHelperAppLauncher extends nsICancelable { + readonly MIMEInfo: nsIMIMEInfo; + readonly source: nsIURI; + readonly suggestedFileName: string; + promptForSaveDestination(): void; + setDownloadToLaunch(aHandleInternally: boolean, aFile: nsIFile): void; + launchLocalFile(): void; + saveDestinationAvailable(aFile: nsIFile, aDialogWasShown?: boolean): void; + setWebProgressListener(aWebProgressListener: nsIWebProgressListener2): void; + readonly targetFile: nsIFile; + readonly targetFileIsExecutable: boolean; + readonly timeDownloadStarted: PRTime; + readonly contentLength: i64; + readonly browsingContextId: u64; +} + +// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIExternalProtocolService.idl + +interface nsIExternalProtocolService extends nsISupports { + externalProtocolHandlerExists(aProtocolScheme: string): boolean; + isExposedProtocol(aProtocolScheme: string): boolean; + getProtocolHandlerInfo(aProtocolScheme: string): nsIHandlerInfo; + getProtocolHandlerInfoFromOS(aProtocolScheme: string, aFound: OutParam<boolean>): nsIHandlerInfo; + setProtocolHandlerDefaults(aHandlerInfo: nsIHandlerInfo, aOSHandlerExists: boolean): void; + loadURI(aURI: nsIURI, aTriggeringPrincipal?: nsIPrincipal, aRedirectPrincipal?: nsIPrincipal, aBrowsingContext?: BrowsingContext, aWasTriggeredExternally?: boolean, aHasValidUserGestureActivation?: boolean): void; + getApplicationDescription(aScheme: string): string; + isCurrentAppOSDefaultForProtocol(aScheme: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIHandlerService.idl + +interface nsIHandlerService extends nsISupports { + asyncInit(): void; + enumerate(): nsISimpleEnumerator; + fillHandlerInfo(aHandlerInfo: nsIHandlerInfo, aOverrideType: string): void; + store(aHandlerInfo: nsIHandlerInfo): void; + exists(aHandlerInfo: nsIHandlerInfo): boolean; + remove(aHandlerInfo: nsIHandlerInfo): void; + getTypeFromExtension(aFileExtension: string): string; + existsForProtocolOS(aProtocolScheme: string): boolean; + existsForProtocol(aProtocolScheme: string): boolean; + getApplicationDescription(aProtocolScheme: string): string; +} + +// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIHelperAppLauncherDialog.idl + +interface nsIHelperAppLauncherDialog extends nsISupports { + readonly REASON_CANTHANDLE: 0; + readonly REASON_SERVERREQUEST: 1; + readonly REASON_TYPESNIFFED: 2; + + show(aLauncher: nsIHelperAppLauncher, aWindowContext: nsIInterfaceRequestor, aReason: u32): void; + promptForSaveToFileAsync(aLauncher: nsIHelperAppLauncher, aWindowContext: nsIInterfaceRequestor, aDefaultFileName: string, aSuggestedFileExtension: string, aForcePrompt: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsISharingHandlerApp.idl + +interface nsISharingHandlerApp extends nsIHandlerApp { + share(data: string, title?: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/typeaheadfind/nsITypeAheadFind.idl + +interface nsITypeAheadFind extends nsISupports { + readonly FIND_INITIAL: 0; + readonly FIND_NEXT: 1; + readonly FIND_PREVIOUS: 2; + readonly FIND_FIRST: 3; + readonly FIND_LAST: 4; + readonly FIND_FOUND: 0; + readonly FIND_NOTFOUND: 1; + readonly FIND_WRAPPED: 2; + readonly FIND_PENDING: 3; + + init(aDocShell: nsIDocShell): void; + find(aSearchString: string, aLinksOnly: boolean, aMode: u32, aDontIterateFrames: boolean): u16; + getFoundRange(): Range; + setDocShell(aDocShell: nsIDocShell): void; + setSelectionModeAndRepaint(toggle: i16): void; + collapseSelection(): void; + isRangeVisible(aRange: Range, aMustBeInViewPort: boolean): boolean; + isRangeRendered(aRange: Range): boolean; + readonly searchString: string; + caseSensitive: boolean; + matchDiacritics: boolean; + entireWord: boolean; + readonly foundLink: Element; + readonly foundEditable: Element; + readonly currentWindow: mozIDOMWindow; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/glean/xpcom/nsIFOG.idl + +interface nsIFOG extends nsISupports { + initializeFOG(aDataPathOverride?: string, aAppIdOverride?: string): void; + registerCustomPings(): void; + setLogPings(aEnableLogPings: boolean): void; + setTagPings(aDebugTag: string): void; + sendPing(aPingName: string): void; + setExperimentActive(aExperimentId: string, aBranch: string, aExtra?: any): void; + setExperimentInactive(aExperimentId: string): void; + testGetExperimentData(aExperimentId: string): any; + setMetricsFeatureConfig(aJsonConfig: string): void; + testFlushAllChildren(): Promise<any>; + testResetFOG(aDataPathOverride?: string, aAppIdOverride?: string): void; + testTriggerMetrics(aProcessType: u32): Promise<any>; + testRegisterRuntimeMetric(aType: string, aCategory: string, aName: string, aPings: string[], aLifetime: string, aDisabled: boolean, aExtraArgs?: string): u32; + testRegisterRuntimePing(aName: string, aIncludeClientId: boolean, aSendIfEmpty: boolean, aPreciseTimestamps: boolean, aIncludeInfoSections: boolean, aReasonCodes: string[]): u32; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/glean/xpcom/nsIGleanPing.idl + +type nsIGleanPingTestCallback = Callable<{ + call(aReason: string): void; +}> + +interface nsIGleanPing extends nsISupports { + submit(aReason?: string): void; + testBeforeNextSubmit(aCallback: nsIGleanPingTestCallback): void; +} + +// https://searchfox.org/mozilla-central/source/gfx/src/nsIFontEnumerator.idl + +interface nsIFontEnumerator extends nsISupports { + EnumerateAllFonts(): string[]; + EnumerateFonts(aLangGroup: string, aGeneric: string): string[]; + EnumerateAllFontsAsync(): any; + EnumerateFontsAsync(aLangGroup: string, aGeneric: string): any; + HaveFontFor(aLangGroup: string): OutParam<boolean>; + getDefaultFont(aLangGroup: string, aGeneric: string): string; + getStandardFamilyName(aName: string): string; +} + +// https://searchfox.org/mozilla-central/source/gfx/thebes/nsIFontLoadCompleteCallback.idl + +// https://searchfox.org/mozilla-central/source/parser/html/nsIParserUtils.idl + +interface nsIParserUtils extends nsISupports { + readonly SanitizerAllowComments: 1; + readonly SanitizerAllowStyle: 2; + readonly SanitizerCidEmbedsOnly: 4; + readonly SanitizerDropNonCSSPresentation: 8; + readonly SanitizerDropForms: 16; + readonly SanitizerDropMedia: 32; + readonly SanitizerLogRemovals: 64; + + sanitize(src: string, flags: u32): string; + removeConditionalCSS(src: string): string; + convertToPlainText(src: string, flags: u32, wrapCol: u32): string; + parseFragment(fragment: string, flags: u32, isXML: boolean, baseURI: nsIURI, element: Element): DocumentFragment; +} + +// https://searchfox.org/mozilla-central/source/parser/htmlparser/nsIExpatSink.idl + +interface nsIExpatSink extends nsISupports { + HandleStartElement(aName: string, aAtts: string[], aAttsCount: u32, aLineNumber: u32, aColumnNumber: u32): void; + HandleEndElement(aName: string): void; + HandleComment(aCommentText: string): void; + HandleCDataSection(aData: string, aLength: u32): void; + HandleDoctypeDecl(aSubset: string, aName: string, aSystemId: string, aPublicId: string, aCatalogData: nsISupports): void; + HandleCharacterData(aData: string, aLength: u32): void; + HandleProcessingInstruction(aTarget: string, aData: string): void; + HandleXMLDeclaration(aVersion: string, aEncoding: string, aStandalone: i32): void; + ReportError(aErrorText: string, aSourceText: string, aError: nsIScriptError): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/http-sfv/nsIStructuredFieldValues.idl + +interface nsISFVBareItem extends nsISupports { + readonly BOOL: 1; + readonly STRING: 2; + readonly DECIMAL: 3; + readonly INTEGER: 4; + readonly TOKEN: 5; + readonly BYTE_SEQUENCE: 6; + + readonly type: i32; +} + +interface nsISFVInteger extends nsISFVBareItem { + value: i64; +} + +interface nsISFVString extends nsISFVBareItem { + value: string; +} + +interface nsISFVBool extends nsISFVBareItem { + value: boolean; +} + +interface nsISFVDecimal extends nsISFVBareItem { + value: double; +} + +interface nsISFVToken extends nsISFVBareItem { + value: string; +} + +interface nsISFVByteSeq extends nsISFVBareItem { + value: string; +} + +interface nsISFVParams extends nsISupports { + get(key: string): nsISFVBareItem; + set(key: string, item: nsISFVBareItem): void; + delete(key: string): void; + keys(): string[]; +} + +interface nsISFVParametrizable extends nsISupports { + readonly params: nsISFVParams; +} + +interface nsISFVItemOrInnerList extends nsISFVParametrizable { +} + +interface nsISFVSerialize extends nsISupports { + serialize(): string; +} + +interface nsISFVItem extends nsISFVItemOrInnerList { + readonly value: nsISFVBareItem; + serialize(): string; +} + +interface nsISFVInnerList extends nsISFVItemOrInnerList { + items: nsISFVItem[]; +} + +interface nsISFVList extends nsISFVSerialize { + members: nsISFVItemOrInnerList[]; + parseMore(header: string): void; +} + +interface nsISFVDictionary extends nsISFVSerialize { + get(key: string): nsISFVItemOrInnerList; + set(key: string, member_value: nsISFVItemOrInnerList): void; + delete(key: string): void; + keys(): string[]; + parseMore(header: string): void; +} + +interface nsISFVService extends nsISupports { + parseDictionary(header: string): nsISFVDictionary; + parseList(header: string): nsISFVList; + parseItem(header: string): nsISFVItem; + newInteger(value: i64): nsISFVInteger; + newBool(value: boolean): nsISFVBool; + newDecimal(value: double): nsISFVDecimal; + newString(value: string): nsISFVString; + newByteSequence(value: string): nsISFVByteSeq; + newToken(value: string): nsISFVToken; + newParameters(): nsISFVParams; + newInnerList(items: nsISFVItem[], params: nsISFVParams): nsISFVInnerList; + newItem(value: nsISFVBareItem, params: nsISFVParams): nsISFVItem; + newList(members: nsISFVItemOrInnerList[]): nsISFVList; + newDictionary(): nsISFVDictionary; +} + +// https://searchfox.org/mozilla-central/source/image/imgICache.idl + +interface imgICache extends nsISupports { + clearCache(chrome: boolean): void; + removeEntriesFromPrincipalInAllProcesses(aPrincipal: nsIPrincipal): void; + removeEntriesFromBaseDomainInAllProcesses(aBaseDomain: string): void; + findEntryProperties(uri: nsIURI, doc?: Document): nsIProperties; + respectPrivacyNotifications(): void; +} + +// https://searchfox.org/mozilla-central/source/image/imgIContainer.idl + +} // global + +declare namespace imgIContainer { + +enum DecodeResult { + DECODE_SURFACE_AVAILABLE = 0, + DECODE_REQUESTED = 1, + DECODE_REQUEST_FAILED = 2, +} + +} + +declare global { + +interface imgIContainer extends nsISupports, Enums<typeof imgIContainer.DecodeResult> { + readonly TYPE_RASTER: 0; + readonly TYPE_VECTOR: 1; + readonly TYPE_REQUEST: 2; + readonly FLAG_NONE: 0; + readonly FLAG_SYNC_DECODE: 1; + readonly FLAG_SYNC_DECODE_IF_FAST: 2; + readonly FLAG_ASYNC_NOTIFY: 4; + readonly FLAG_DECODE_NO_PREMULTIPLY_ALPHA: 8; + readonly FLAG_DECODE_NO_COLORSPACE_CONVERSION: 16; + readonly FLAG_CLAMP: 32; + readonly FLAG_HIGH_QUALITY_SCALING: 64; + readonly FLAG_BYPASS_SURFACE_CACHE: 128; + readonly FLAG_FORCE_PRESERVEASPECTRATIO_NONE: 256; + readonly FLAG_FORCE_UNIFORM_SCALING: 512; + readonly FLAG_AVOID_REDECODE_FOR_SIZE: 1024; + readonly FLAG_DECODE_TO_SRGB_COLORSPACE: 2048; + readonly FLAG_RECORD_BLOB: 4096; + readonly DECODE_FLAGS_DEFAULT: 0; + readonly DECODE_FLAGS_FOR_REENCODE: 2056; + readonly FRAME_FIRST: 0; + readonly FRAME_CURRENT: 1; + readonly FRAME_MAX_VALUE: 1; + readonly kNormalAnimMode: 0; + readonly kDontAnimMode: 1; + readonly kLoopOnceAnimMode: 2; + + readonly width: i32; + readonly height: i32; + readonly hotspotX: i32; + readonly hotspotY: i32; + readonly type: u16; + readonly animated: boolean; + readonly providerId: u32; + lockImage(): void; + unlockImage(): void; + requestDiscard(): void; + animationMode: u16; + resetAnimation(): void; +} + +// https://searchfox.org/mozilla-central/source/image/imgIContainerDebug.idl + +interface imgIContainerDebug extends nsISupports { + readonly framesNotified: u32; +} + +// https://searchfox.org/mozilla-central/source/image/imgIEncoder.idl + +interface imgIEncoder extends nsIAsyncInputStream { + readonly INPUT_FORMAT_RGB: 0; + readonly INPUT_FORMAT_RGBA: 1; + readonly INPUT_FORMAT_HOSTARGB: 2; + + initFromData(data: u8[], length: u32, width: u32, height: u32, stride: u32, inputFormat: u32, outputOptions: string): void; + startImageEncode(width: u32, height: u32, inputFormat: u32, outputOptions: string): void; + addImageFrame(data: u8[], length: u32, width: u32, height: u32, stride: u32, frameFormat: u32, frameOptions: string): void; + endImageEncode(): void; +} + +// https://searchfox.org/mozilla-central/source/image/imgILoader.idl + +interface imgILoader extends nsISupports { + readonly LOAD_CORS_ANONYMOUS: 65536; + readonly LOAD_CORS_USE_CREDENTIALS: 131072; + + loadImageXPCOM(aURI: nsIURI, aInitialDocumentURL: nsIURI, aReferrerInfo: nsIReferrerInfo, aLoadingPrincipal: nsIPrincipal, aLoadGroup: nsILoadGroup, aObserver: imgINotificationObserver, aLoadingDocument: Document, aLoadFlags: nsLoadFlags, cacheKey: nsISupports, aContentPolicyType?: nsContentPolicyType): imgIRequest; + loadImageWithChannelXPCOM(aChannel: nsIChannel, aObserver: imgINotificationObserver, aLoadingDocument: Document, aListener: OutParam<nsIStreamListener>): imgIRequest; +} + +// https://searchfox.org/mozilla-central/source/image/imgINotificationObserver.idl + +interface imgINotificationObserver extends nsISupports { + readonly SIZE_AVAILABLE: 1; + readonly FRAME_UPDATE: 2; + readonly FRAME_COMPLETE: 3; + readonly LOAD_COMPLETE: 4; + readonly DECODE_COMPLETE: 5; + readonly DISCARD: 6; + readonly UNLOCKED_DRAW: 7; + readonly IS_ANIMATED: 8; + readonly HAS_TRANSPARENCY: 9; +} + +// https://searchfox.org/mozilla-central/source/image/imgIRequest.idl + +interface imgIRequest extends nsIRequest { + readonly STATUS_NONE: 0; + readonly STATUS_SIZE_AVAILABLE: 1; + readonly STATUS_LOAD_COMPLETE: 2; + readonly STATUS_ERROR: 4; + readonly STATUS_FRAME_COMPLETE: 8; + readonly STATUS_DECODE_COMPLETE: 16; + readonly STATUS_IS_ANIMATED: 32; + readonly STATUS_HAS_TRANSPARENCY: 64; + readonly CATEGORY_FRAME_INIT: 1; + readonly CATEGORY_FRAME_STYLE: 2; + readonly CATEGORY_SIZE_QUERY: 4; + readonly CATEGORY_DISPLAY: 8; + + readonly image: imgIContainer; + readonly providerId: u32; + readonly triggeringPrincipal: nsIPrincipal; + readonly imageStatus: u32; + readonly URI: nsIURI; + readonly finalURI: nsIURI; + readonly notificationObserver: imgINotificationObserver; + readonly mimeType: string; + readonly fileName: string; + clone(aObserver: imgINotificationObserver): imgIRequest; + readonly imagePrincipal: nsIPrincipal; + readonly hadCrossOriginRedirects: boolean; + readonly multipart: boolean; + readonly CORSMode: i32; + readonly referrerInfo: nsIReferrerInfo; + cancelAndForgetObserver(aStatus: nsresult): void; + startDecoding(aFlags: u32): void; + lockImage(): void; + unlockImage(): void; + requestDiscard(): void; + getStaticRequest(): imgIRequest; + incrementAnimationConsumers(): void; + decrementAnimationConsumers(): void; + boostPriority(aCategory: u32): void; +} + +// https://searchfox.org/mozilla-central/source/image/imgIScriptedNotificationObserver.idl + +interface imgIScriptedNotificationObserver extends nsISupports { + sizeAvailable(aRequest: imgIRequest): void; + frameUpdate(aRequest: imgIRequest): void; + frameComplete(aRequest: imgIRequest): void; + loadComplete(aRequest: imgIRequest): void; + decodeComplete(aRequest: imgIRequest): void; + discard(aRequest: imgIRequest): void; + isAnimated(aRequest: imgIRequest): void; + hasTransparency(aRequest: imgIRequest): void; +} + +// https://searchfox.org/mozilla-central/source/image/imgITools.idl + +interface imgITools extends nsISupports { + decodeImageFromBuffer(aBuffer: string, aSize: u32, aMimeType: string): imgIContainer; + decodeImageFromArrayBuffer(aArrayBuffer: any, aMimeType: string): imgIContainer; + decodeImageFromChannelAsync(aURI: nsIURI, aChannel: nsIChannel, aCallback: imgIContainerCallback, aObserver: imgINotificationObserver): void; + decodeImageAsync(aStream: nsIInputStream, aMimeType: string, aCallback: imgIContainerCallback, aEventTarget: nsIEventTarget): void; + encodeImage(aContainer: imgIContainer, aMimeType: string, outputOptions?: string): nsIInputStream; + encodeScaledImage(aContainer: imgIContainer, aMimeType: string, aWidth: i32, aHeight: i32, outputOptions?: string): nsIInputStream; + getImgLoaderForDocument(doc: Document): imgILoader; + getImgCacheForDocument(doc: Document): imgICache; + encodeCroppedImage(aContainer: imgIContainer, aMimeType: string, aOffsetX: i32, aOffsetY: i32, aWidth: i32, aHeight: i32, outputOptions?: string): nsIInputStream; + createScriptedObserver(aObserver: imgIScriptedNotificationObserver): imgINotificationObserver; +} + +type imgIContainerCallback = Callable<{ + onImageReady(aImage: imgIContainer, aStatus: nsresult): void; +}> + +// https://searchfox.org/mozilla-central/source/image/nsIIconURI.idl + +interface nsIMozIconURI extends nsIURI { + readonly iconURL: nsIURL; + readonly imageSize: u32; + readonly stockIcon: string; + readonly iconSize: string; + readonly iconState: string; + readonly contentType: string; + readonly fileExtension: string; +} + +// https://searchfox.org/mozilla-central/source/layout/inspector/inIDeepTreeWalker.idl + +interface inIDeepTreeWalker extends nsISupports { + showAnonymousContent: boolean; + showSubDocuments: boolean; + showDocumentsAsNodes: boolean; + init(aRoot: Node): void; + readonly root: Node; + currentNode: Node; + parentNode(): Node; + firstChild(): Node; + lastChild(): Node; + previousSibling(): Node; + nextSibling(): Node; + previousNode(): Node; + nextNode(): Node; +} + +// https://searchfox.org/mozilla-central/source/intl/strres/nsIStringBundle.idl + +interface nsIStringBundle extends nsISupports { + GetStringFromID(aID: i32): string; + GetStringFromName(aName: string): string; + formatStringFromID(aID: i32, params: string[]): string; + formatStringFromName(aName: string, params: string[]): string; + getSimpleEnumeration(): nsISimpleEnumerator; + asyncPreload(): void; +} + +interface nsIStringBundleService extends nsISupports { + createBundle(aURLSpec: string): nsIStringBundle; + formatStatusMessage(aStatus: nsresult, aStatusArg: string): string; + flushBundles(): void; +} + +// https://searchfox.org/mozilla-central/source/modules/libjar/nsIJARChannel.idl + +interface nsIJARChannel extends nsIChannel { + jarFile: nsIFile; + readonly zipEntry: nsIZipEntry; + ensureCached(): boolean; +} + +// https://searchfox.org/mozilla-central/source/modules/libjar/nsIJARURI.idl + +interface nsIJARURI extends nsIURL { + readonly JARFile: nsIURI; + readonly JAREntry: string; +} + +// https://searchfox.org/mozilla-central/source/modules/libjar/nsIZipReader.idl + +interface nsIZipEntry extends nsISupports { + readonly compression: u16; + readonly size: u32; + readonly realSize: u32; + readonly CRC32: u32; + readonly isDirectory: boolean; + readonly lastModifiedTime: PRTime; + readonly isSynthetic: boolean; + readonly permissions: u32; +} + +interface nsIZipReader extends nsISupports { + open(zipFile: nsIFile): void; + openInner(zipReader: nsIZipReader, zipEntry: string): void; + readonly file: nsIFile; + close(): void; + test(aEntryName: string): void; + extract(zipEntry: string, outFile: nsIFile): void; + getEntry(zipEntry: string): nsIZipEntry; + hasEntry(zipEntry: string): boolean; + findEntries(aPattern: string): nsIUTF8StringEnumerator; + getInputStream(zipEntry: string): nsIInputStream; +} + +interface nsIZipReaderCache extends nsISupports { + init(cacheSize: u32): void; + getZip(zipFile: nsIFile): nsIZipReader; + getZipIfCached(zipFile: nsIFile): nsIZipReader; + isCached(zipFile: nsIFile): boolean; + getInnerZip(zipFile: nsIFile, zipEntry: string): nsIZipReader; +} + +// https://searchfox.org/mozilla-central/source/devtools/platform/IJSDebugger.idl + +interface IJSDebugger extends nsISupports { + addClass(global: any): void; +} + +// https://searchfox.org/mozilla-central/source/devtools/platform/nsIJSInspector.idl + +interface nsIJSInspector extends nsISupports { + enterNestedEventLoop(requestor: any): u32; + exitNestedEventLoop(): u32; + readonly eventLoopNestLevel: u32; + readonly lastNestRequestor: any; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/kvstore/nsIKeyValue.idl + +} // global + +declare namespace nsIKeyValueService { + +enum RecoveryStrategy { + ERROR = 0, + DISCARD = 1, + RENAME = 2, +} + +} + +declare global { + +interface nsIKeyValueService extends nsISupports, Enums<typeof nsIKeyValueService.RecoveryStrategy> { + getOrCreate(callback: nsIKeyValueDatabaseCallback, path: string, name: string): void; + getOrCreateWithOptions(callback: nsIKeyValueDatabaseCallback, path: string, name: string, recoveryStrategy?: nsIKeyValueService.RecoveryStrategy): void; +} + +interface nsIKeyValueDatabase extends nsISupports { + put(callback: nsIKeyValueVoidCallback, key: string, value: nsIVariant): void; + writeMany(callback: nsIKeyValueVoidCallback, pairs: nsIKeyValuePair[]): void; + get(callback: nsIKeyValueVariantCallback, key: string, defaultValue?: nsIVariant): void; + has(callback: nsIKeyValueVariantCallback, key: string): void; + delete(callback: nsIKeyValueVoidCallback, key: string): void; + clear(callback: nsIKeyValueVoidCallback): void; + enumerate(callback: nsIKeyValueEnumeratorCallback, fromKey?: string, toKey?: string): void; +} + +interface nsIKeyValuePair extends nsISupports { + readonly key: string; + readonly value: nsIVariant; +} + +interface nsIKeyValueEnumerator extends nsISupports { + hasMoreElements(): boolean; + getNext(): nsIKeyValuePair; +} + +interface nsIKeyValueDatabaseCallback extends nsISupports { + resolve(database: nsIKeyValueDatabase): void; + reject(message: string): void; +} + +interface nsIKeyValueEnumeratorCallback extends nsISupports { + resolve(enumerator: nsIKeyValueEnumerator): void; + reject(message: string): void; +} + +interface nsIKeyValuePairCallback extends nsISupports { + resolve(pair: nsIKeyValuePair): void; + reject(message: string): void; +} + +interface nsIKeyValueVariantCallback extends nsISupports { + resolve(result: nsIVariant): void; + reject(message: string): void; +} + +interface nsIKeyValueVoidCallback extends nsISupports { + resolve(): void; + reject(message: string): void; +} + +// https://searchfox.org/mozilla-central/source/layout/base/nsILayoutHistoryState.idl + +interface nsILayoutHistoryState extends nsISupports { + readonly hasStates: boolean; + getKeys(): string[]; + getPresState(aKey: string, aScrollX: OutParam<float>, aScrollY: OutParam<float>, aAllowScrollOriginDowngrade: OutParam<boolean>, aRes: OutParam<float>): void; + addNewPresState(aKey: string, aScrollX: float, aScrollY: float, aAllowScrollOriginDowngrade: boolean, aRes: float): void; +} + +// https://searchfox.org/mozilla-central/source/layout/base/nsIPreloadedStyleSheet.idl + +interface nsIPreloadedStyleSheet extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/layout/base/nsIStyleSheetService.idl + +interface nsIStyleSheetService extends nsISupports { + readonly AGENT_SHEET: 0; + readonly USER_SHEET: 1; + readonly AUTHOR_SHEET: 2; + + loadAndRegisterSheet(sheetURI: nsIURI, type: u32): void; + sheetRegistered(sheetURI: nsIURI, type: u32): boolean; + preloadSheet(sheetURI: nsIURI, type: u32): nsIPreloadedStyleSheet; + preloadSheetAsync(sheetURI: nsIURI, type: u32): any; + unregisterSheet(sheetURI: nsIURI, type: u32): void; +} + +// https://searchfox.org/mozilla-central/source/layout/xul/tree/nsITreeSelection.idl + +interface nsITreeSelection extends nsISupports { + tree: XULTreeElement; + readonly single: boolean; + readonly count: i32; + isSelected(index: i32): boolean; + select(index: i32): void; + timedSelect(index: i32, delay: i32): void; + toggleSelect(index: i32): void; + rangedSelect(startIndex: i32, endIndex: i32, augment: boolean): void; + clearRange(startIndex: i32, endIndex: i32): void; + clearSelection(): void; + selectAll(): void; + getRangeCount(): i32; + getRangeAt(i: i32, min: OutParam<i32>, max: OutParam<i32>): void; + invalidateSelection(): void; + adjustSelection(index: i32, count: i32): void; + selectEventsSuppressed: boolean; + currentIndex: i32; + readonly shiftSelectPivot: i32; +} + +// https://searchfox.org/mozilla-central/source/layout/xul/tree/nsITreeView.idl + +interface nsITreeView extends nsISupports { + readonly DROP_BEFORE: -1; + readonly DROP_ON: 0; + readonly DROP_AFTER: 1; + + readonly rowCount: i32; + selection: nsITreeSelection; + getRowProperties(index: i32): string; + getCellProperties(row: i32, col: TreeColumn): string; + getColumnProperties(col: TreeColumn): string; + isContainer(index: i32): boolean; + isContainerOpen(index: i32): boolean; + isContainerEmpty(index: i32): boolean; + isSeparator(index: i32): boolean; + isSorted(): boolean; + canDrop(index: i32, orientation: i32, dataTransfer: DataTransfer): boolean; + drop(row: i32, orientation: i32, dataTransfer: DataTransfer): void; + getParentIndex(rowIndex: i32): i32; + hasNextSibling(rowIndex: i32, afterIndex: i32): boolean; + getLevel(index: i32): i32; + getImageSrc(row: i32, col: TreeColumn): string; + getCellValue(row: i32, col: TreeColumn): string; + getCellText(row: i32, col: TreeColumn): string; + setTree(tree: XULTreeElement): void; + toggleOpenState(index: i32): void; + cycleHeader(col: TreeColumn): void; + selectionChanged(): void; + cycleCell(row: i32, col: TreeColumn): void; + isEditable(row: i32, col: TreeColumn): boolean; + setCellValue(row: i32, col: TreeColumn, value: string): void; + setCellText(row: i32, col: TreeColumn, value: string): void; +} + +// https://searchfox.org/mozilla-central/source/intl/locale/mozILocaleService.idl + +interface mozILocaleService extends nsISupports { + readonly langNegStrategyFiltering: 0; + readonly langNegStrategyMatching: 1; + readonly langNegStrategyLookup: 2; + + readonly defaultLocale: string; + readonly lastFallbackLocale: string; + readonly appLocalesAsLangTags: string[]; + readonly appLocalesAsBCP47: string[]; + readonly regionalPrefsLocales: string[]; + readonly webExposedLocales: string[]; + negotiateLanguages(aRequested: string[], aAvailable: string[], aDefaultLocale?: string, langNegStrategy?: i32): string[]; + readonly appLocaleAsLangTag: string; + readonly appLocaleAsBCP47: string; + requestedLocales: string[]; + readonly requestedLocale: string; + availableLocales: string[]; + readonly isAppLocaleRTL: boolean; + readonly packagedLocales: string[]; +} + +// https://searchfox.org/mozilla-central/source/intl/locale/mozIOSPreferences.idl + +interface mozIOSPreferences extends nsISupports { + readonly dateTimeFormatStyleNone: 0; + readonly dateTimeFormatStyleShort: 1; + readonly dateTimeFormatStyleMedium: 2; + readonly dateTimeFormatStyleLong: 3; + readonly dateTimeFormatStyleFull: 4; + + readonly systemLocales: string[]; + readonly regionalPrefsLocales: string[]; + readonly systemLocale: string; + getDateTimePattern(timeFormatStyle: i32, dateFormatStyle: i32, locale?: string): string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginAutoCompleteSearch.idl + +interface nsILoginAutoCompleteSearch extends nsISupports { + startSearch(aSearchString: string, aPreviousResult: nsIAutoCompleteResult, aElement: HTMLInputElement, aListener: nsIFormAutoCompleteObserver): void; + stopSearch(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginInfo.idl + +interface nsILoginInfo extends nsISupports { + readonly displayOrigin: string; + origin: string; + hostname: string; + formActionOrigin: string; + formSubmitURL: string; + httpRealm: string; + username: string; + usernameField: string; + password: string; + passwordField: string; + unknownFields: string; + everSynced: boolean; + syncCounter: i32; + init(aOrigin: string, aFormActionOrigin: string, aHttpRealm: string, aUsername: string, aPassword: string, aUsernameField?: string, aPasswordField?: string): void; + equals(aLoginInfo: nsILoginInfo): boolean; + matches(aLoginInfo: nsILoginInfo, ignorePassword: boolean): boolean; + clone(): nsILoginInfo; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginManager.idl + +interface nsILoginSearchCallback extends nsISupports { + onSearchComplete(aLogins: nsILoginInfo[]): void; +} + +interface nsILoginManager extends nsISupports { + readonly initializationPromise: Promise<any>; + addLogin(aLogin: nsILoginInfo): nsILoginInfo; + addLoginAsync(aLogin: nsILoginInfo): Promise<any>; + addLogins(aLogins: any): Promise<any>; + removeLogin(aLogin: nsILoginInfo): void; + modifyLogin(oldLogin: nsILoginInfo, newLoginData: nsISupports): void; + recordPasswordUse(aLogin: nsILoginInfo, aPrivateContextWithoutExplicitConsent: boolean, aLoginType: string, aFilled: boolean): void; + removeAllUserFacingLogins(): void; + removeAllLogins(): void; + getAllLogins(): Promise<any>; + getAllLoginsWithCallback(aCallback: nsILoginSearchCallback): void; + getAllDisabledHosts(): string[]; + getLoginSavingEnabled(aHost: string): boolean; + setLoginSavingEnabled(aHost: string, isEnabled: boolean): void; + findLogins(aOrigin: string, aActionOrigin: string, aHttpRealm: string): nsILoginInfo[]; + countLogins(aOrigin: string, aActionOrigin: string, aHttpRealm: string): u32; + searchLoginsAsync(matchData: any): Promise<any>; + searchLogins(matchData: nsIPropertyBag): nsILoginInfo[]; + getSyncID(): Promise<any>; + setSyncID(syncID: string): Promise<any>; + getLastSync(): Promise<any>; + setLastSync(timestamp: double): Promise<any>; + ensureCurrentSyncID(newSyncID: string): Promise<any>; + readonly uiBusy: boolean; + readonly isLoggedIn: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginManagerAuthPrompter.idl + +interface nsILoginManagerAuthPrompter extends nsISupports { + init(aWindow: nsIDOMWindow): void; + browser: Element; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginManagerCrypto.idl + +interface nsILoginManagerCrypto extends nsISupports { + readonly ENCTYPE_BASE64: 0; + readonly ENCTYPE_SDR: 1; + + encrypt(plainText: string): string; + encryptMany(plainTexts: any): Promise<any>; + decrypt(cipherText: string): string; + decryptMany(cipherTexts: any): Promise<any>; + readonly uiBusy: boolean; + readonly isLoggedIn: boolean; + readonly defaultEncType: u32; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginManagerPrompter.idl + +interface nsILoginManagerPrompter extends nsISupports { + promptToSavePassword(aBrowser: Element, aLogin: nsILoginInfo, dismissed?: boolean, notifySaved?: boolean, autoFilledLoginGuid?: string, possibleValues?: any): nsIPromptInstance; + promptToChangePassword(aBrowser: Element, aOldLogin: nsILoginInfo, aNewLogin: nsILoginInfo, dismissed?: boolean, notifySaved?: boolean, autoSavedLoginGuid?: string, autoFilledLoginGuid?: string, possibleValues?: any): nsIPromptInstance; + promptToChangePasswordWithUsernames(aBrowser: Element, logins: nsILoginInfo[], aNewLogin: nsILoginInfo): nsIPromptInstance; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsILoginMetaInfo.idl + +interface nsILoginMetaInfo extends nsISupports { + guid: string; + timeCreated: u64; + timeLastUsed: u64; + timePasswordChanged: u64; + timesUsed: u32; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/passwordmgr/nsIPromptInstance.idl + +interface nsIPromptInstance extends nsISupports { + dismiss(): void; +} + +// https://searchfox.org/mozilla-central/source/browser/components/migration/nsIEdgeMigrationUtils.idl + +interface nsIEdgeMigrationUtils extends nsISupports { + isDbLocked(aFile: nsIFile): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/netwerk/mime/nsIMIMEHeaderParam.idl + +interface nsIMIMEHeaderParam extends nsISupports { + getParameter(aHeaderVal: string, aParamName: string, aFallbackCharset: string, aTryLocaleCharset: boolean, aLang: OutParam<string>): string; + getParameterHTTP(aHeaderVal: string, aParamName: string, aFallbackCharset: string, aTryLocaleCharset: boolean, aLang: OutParam<string>): string; + decodeRFC5987Param(aParamVal: string, aLang: OutParam<string>): string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/mime/nsIMIMEInfo.idl + +interface nsIHandlerInfo extends nsISupports { + readonly saveToDisk: 0; + readonly alwaysAsk: 1; + readonly useHelperApp: 2; + readonly handleInternally: 3; + readonly useSystemDefault: 4; + + readonly type: string; + description: string; + preferredApplicationHandler: nsIHandlerApp; + readonly possibleApplicationHandlers: nsIMutableArray; + readonly hasDefaultHandler: boolean; + readonly defaultDescription: string; + launchWithURI(aURI: nsIURI, aBrowsingContext?: BrowsingContext): void; + preferredAction: nsHandlerInfoAction; + alwaysAskBeforeHandling: boolean; +} + +interface nsIMIMEInfo extends nsIHandlerInfo { + getFileExtensions(): nsIUTF8StringEnumerator; + setFileExtensions(aExtensions: string): void; + extensionExists(aExtension: string): boolean; + appendExtension(aExtension: string): void; + primaryExtension: string; + readonly MIMEType: string; + equals(aMIMEInfo: nsIMIMEInfo): boolean; + readonly possibleLocalHandlers: nsIArray; + launchWithFile(aFile: nsIFile): void; + isCurrentAppOSDefault(): boolean; +} + +interface nsIHandlerApp extends nsISupports { + name: string; + detailedDescription: string; + equals(aHandlerApp: nsIHandlerApp): boolean; + launchWithURI(aURI: nsIURI, aBrowsingContext?: BrowsingContext): void; +} + +interface nsILocalHandlerApp extends nsIHandlerApp { + executable: nsIFile; + readonly parameterCount: u32; + clearParameters(): void; + appendParameter(param: string): void; + getParameter(parameterIndex: u32): string; + parameterExists(param: string): boolean; +} + +interface nsIWebHandlerApp extends nsIHandlerApp { + uriTemplate: string; +} + +interface nsIDBusHandlerApp extends nsIHandlerApp { + service: string; + objectPath: string; + dBusInterface: string; + method: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/mime/nsIMIMEService.idl + +interface nsIMIMEService extends nsISupports { + readonly VALIDATE_DEFAULT: 0; + readonly VALIDATE_SANITIZE_ONLY: 1; + readonly VALIDATE_DONT_COLLAPSE_WHITESPACE: 2; + readonly VALIDATE_DONT_TRUNCATE: 4; + readonly VALIDATE_GUESS_FROM_EXTENSION: 8; + readonly VALIDATE_ALLOW_EMPTY: 16; + readonly VALIDATE_NO_DEFAULT_FILENAME: 32; + readonly VALIDATE_FORCE_APPEND_EXTENSION: 64; + readonly VALIDATE_ALLOW_INVALID_FILENAMES: 128; + + getFromTypeAndExtension(aMIMEType: string, aFileExt: string): nsIMIMEInfo; + getTypeFromExtension(aFileExt: string): string; + getTypeFromURI(aURI: nsIURI): string; + getDefaultTypeFromURI(aURI: nsIURI): string; + getTypeFromFile(aFile: nsIFile): string; + getPrimaryExtension(aMIMEType: string, aFileExt: string): string; + getMIMEInfoFromOS(aType: string, aFileExtension: string, aFound: OutParam<boolean>): nsIMIMEInfo; + updateDefaultAppInfo(aMIMEInfo: nsIMIMEInfo): void; + getValidFileName(aChannel: nsIChannel, aType: string, aOriginalURI: nsIURI, aFlags: u32): string; + validateFileNameForSaving(aFileName: string, aType: string, aFlags: u32): string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/find/nsIFind.idl + +interface nsIFind extends nsISupports { + findBackwards: boolean; + caseSensitive: boolean; + entireWord: boolean; + matchDiacritics: boolean; + Find(aPatText: string, aSearchRange: Range, aStartPoint: Range, aEndPoint: Range): Range; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/find/nsIFindService.idl + +interface nsIFindService extends nsISupports { + searchString: string; + replaceString: string; + findBackwards: boolean; + wrapFind: boolean; + entireWord: boolean; + matchCase: boolean; + matchDiacritics: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/find/nsIWebBrowserFind.idl + +interface nsIWebBrowserFind extends nsISupports { + findNext(): boolean; + searchString: string; + findBackwards: boolean; + wrapFind: boolean; + entireWord: boolean; + matchCase: boolean; + matchDiacritics: boolean; + searchFrames: boolean; +} + +interface nsIWebBrowserFindInFrames extends nsISupports { + currentSearchFrame: mozIDOMWindowProxy; + rootSearchFrame: mozIDOMWindowProxy; + searchSubframes: boolean; + searchParentFrames: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/mozintl/mozIMozIntl.idl + +interface mozIMozIntl extends nsISupports { + getCalendarInfo(locales?: any): any; + getDisplayNamesDeprecated(locales?: any, options?: any): any; + getAvailableLocaleDisplayNames(type: any): any; + getLanguageDisplayNames(locales: any, langCodes: any): any; + getRegionDisplayNames(locales: any, regionCodes: any): any; + getLocaleDisplayNames(locales: any, localeCodes: any, options?: any): any; + getScriptDirection(locale: any): any; + stringHasRTLChars(str: any): boolean; + readonly Collator: any; + readonly DateTimeFormat: any; + readonly DisplayNames: any; + readonly ListFormat: any; + readonly Locale: any; + readonly NumberFormat: any; + readonly PluralRules: any; + readonly RelativeTimeFormat: any; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/mozintl/mozIMozIntlHelper.idl + +interface mozIMozIntlHelper extends nsISupports { + addGetCalendarInfo(intlObject: any): void; + addDateTimeFormatConstructor(intlObject: any): void; + addDisplayNamesConstructor(intlObject: any): void; + stringHasRTLChars(str: any): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/mozIThirdPartyUtil.idl + +interface mozIThirdPartyUtil extends nsISupports { + isThirdPartyURI(aFirstURI: nsIURI, aSecondURI: nsIURI): boolean; + isThirdPartyWindow(aWindow: mozIDOMWindowProxy, aURI?: nsIURI): boolean; + isThirdPartyChannel(aChannel: nsIChannel, aURI?: nsIURI): boolean; + getBaseDomain(aHostURI: nsIURI): string; + getBaseDomainFromSchemeHost(aScheme: string, aAsciiHost: string): string; + getURIFromWindow(aWindow: mozIDOMWindowProxy): nsIURI; + getPrincipalFromWindow(aWindow: mozIDOMWindowProxy): nsIPrincipal; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIArrayBufferInputStream.idl + +interface nsIArrayBufferInputStream extends nsIInputStream { + setData(buffer: any, byteOffset: u64, byteLen: u64): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAsyncStreamCopier.idl + +interface nsIAsyncStreamCopier extends nsIRequest { + init(aSource: nsIInputStream, aSink: nsIOutputStream, aTarget: nsIEventTarget, aSourceBuffered: boolean, aSinkBuffered: boolean, aChunkSize: u32, aCloseSource: boolean, aCloseSink: boolean): void; + asyncCopy(aObserver: nsIRequestObserver, aObserverContext: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAsyncStreamCopier2.idl + +interface nsIAsyncStreamCopier2 extends nsIRequest { + init(aSource: nsIInputStream, aSink: nsIOutputStream, aTarget: nsIEventTarget, aChunkSize: u32, aCloseSource: boolean, aCloseSink: boolean): void; + asyncCopy(aObserver: nsIRequestObserver, aObserverContext: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAsyncVerifyRedirectCallback.idl + +interface nsIAsyncVerifyRedirectCallback extends nsISupports { + onRedirectVerifyCallback(result: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthInformation.idl + +interface nsIAuthInformation extends nsISupports { + readonly AUTH_HOST: 1; + readonly AUTH_PROXY: 2; + readonly NEED_DOMAIN: 4; + readonly ONLY_PASSWORD: 8; + readonly PREVIOUS_FAILED: 16; + readonly CROSS_ORIGIN_SUB_RESOURCE: 32; + + readonly flags: u32; + readonly realm: string; + readonly authenticationScheme: string; + username: string; + password: string; + domain: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthModule.idl + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPrompt.idl + +interface nsIAuthPrompt extends nsISupports { + readonly SAVE_PASSWORD_NEVER: 0; + readonly SAVE_PASSWORD_FOR_SESSION: 1; + readonly SAVE_PASSWORD_PERMANENTLY: 2; + + prompt(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, defaultText: string, result: OutParam<string>): boolean; + promptUsernameAndPassword(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, user: InOutParam<string>, pwd: InOutParam<string>): boolean; + asyncPromptUsernameAndPassword(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, user: InOutParam<string>, pwd: InOutParam<string>): Promise<any>; + promptPassword(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, pwd: InOutParam<string>): boolean; + asyncPromptPassword(dialogTitle: string, text: string, passwordRealm: string, savePassword: u32, pwd: InOutParam<string>): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPrompt2.idl + +interface nsIAuthPrompt2 extends nsISupports { + readonly LEVEL_NONE: 0; + readonly LEVEL_PW_ENCRYPTED: 1; + readonly LEVEL_SECURE: 2; + + promptAuth(aChannel: nsIChannel, level: u32, authInfo: nsIAuthInformation): boolean; + asyncPromptAuth(aChannel: nsIChannel, aCallback: nsIAuthPromptCallback, aContext: nsISupports, level: u32, authInfo: nsIAuthInformation): nsICancelable; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPromptAdapterFactory.idl + +interface nsIAuthPromptAdapterFactory extends nsISupports { + createAdapter(aPrompt: nsIAuthPrompt): nsIAuthPrompt2; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPromptCallback.idl + +interface nsIAuthPromptCallback extends nsISupports { + onAuthAvailable(aContext: nsISupports, aAuthInfo: nsIAuthInformation): void; + onAuthCancelled(aContext: nsISupports, userCancel: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIAuthPromptProvider.idl + +interface nsIAuthPromptProvider extends nsISupports { + readonly PROMPT_NORMAL: 0; + readonly PROMPT_PROXY: 1; + + getAuthPrompt<T extends nsIID>(aPromptReason: u32, iid: T): nsQIResult<T>; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIBackgroundFileSaver.idl + +interface nsIBackgroundFileSaver extends nsISupports { + observer: nsIBackgroundFileSaverObserver; + readonly signatureInfo: u8[][][]; + readonly sha256Hash: string; + enableSignatureInfo(): void; + enableSha256(): void; + enableAppend(): void; + setTarget(aTarget: nsIFile, aKeepPartial: boolean): void; + finish(aStatus: nsresult): void; +} + +interface nsIBackgroundFileSaverObserver extends nsISupports { + onTargetChange(aSaver: nsIBackgroundFileSaver, aTarget: nsIFile): void; + onSaveComplete(aSaver: nsIBackgroundFileSaver, aStatus: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIBaseChannel.idl + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIBufferedStreams.idl + +interface nsIBufferedInputStream extends nsIInputStream { + init(fillFromStream: nsIInputStream, bufferSize: u32): void; + readonly data: nsIInputStream; +} + +interface nsIBufferedOutputStream extends nsIOutputStream { + init(sinkToStream: nsIOutputStream, bufferSize: u32): void; + readonly data: nsIOutputStream; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIByteRangeRequest.idl + +interface nsIByteRangeRequest extends nsISupports { + readonly isByteRangeRequest: boolean; + readonly startRange: i64; + readonly endRange: i64; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsICacheInfoChannel.idl + +interface nsIInputStreamReceiver extends nsISupports { + onInputStreamReady(aStream: nsIInputStream): void; +} + +} // global + +declare namespace nsICacheInfoChannel { + +enum PreferredAlternativeDataDeliveryType { + NONE = 0, + ASYNC = 1, + SERIALIZE = 2, +} + +} + +declare global { + +interface nsICacheInfoChannel extends nsISupports, Enums<typeof nsICacheInfoChannel.PreferredAlternativeDataDeliveryType> { + readonly cacheTokenFetchCount: u32; + readonly cacheTokenExpirationTime: u32; + isFromCache(): boolean; + isRacing(): boolean; + getCacheEntryId(): u64; + cacheKey: u32; + allowStaleCacheContent: boolean; + preferCacheLoadOverBypass: boolean; + forceValidateCacheContent: boolean; + preferAlternativeDataType(type: string, contentType: string, deliverAltData: nsICacheInfoChannel.PreferredAlternativeDataDeliveryType): void; + readonly alternativeDataType: string; + readonly alternativeDataInputStream: nsIInputStream; + getOriginalInputStream(aReceiver: nsIInputStreamReceiver): void; + openAlternativeOutputStream(type: string, predictedSize: i64): nsIAsyncOutputStream; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsICachingChannel.idl + +interface nsICachingChannel extends nsICacheInfoChannel { + readonly LOAD_NO_NETWORK_IO: 67108864; + readonly LOAD_BYPASS_LOCAL_CACHE: 268435456; + readonly LOAD_BYPASS_LOCAL_CACHE_IF_BUSY: 536870912; + readonly LOAD_ONLY_FROM_CACHE: 1073741824; + readonly LOAD_ONLY_IF_MODIFIED: 2147483648; + + cacheToken: nsISupports; + cacheOnlyMetadata: boolean; + pin: boolean; + forceCacheEntryValidFor(aSecondsToTheFuture: u32): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsICancelable.idl + +interface nsICancelable extends nsISupports { + cancel(aReason: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsICaptivePortalService.idl + +interface nsICaptivePortalServiceCallback extends nsISupports { + complete(success: boolean, error: nsresult): void; +} + +interface nsICaptivePortalService extends nsISupports { + readonly UNKNOWN: 0; + readonly NOT_CAPTIVE: 1; + readonly UNLOCKED_PORTAL: 2; + readonly LOCKED_PORTAL: 3; + + recheckCaptivePortal(): void; + readonly state: i32; + readonly lastChecked: u64; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIChannel.idl + +interface nsIChannel extends nsIRequest { + readonly LOAD_DOCUMENT_URI: 65536; + readonly LOAD_RETARGETED_DOCUMENT_URI: 131072; + readonly LOAD_REPLACE: 262144; + readonly LOAD_INITIAL_DOCUMENT_URI: 524288; + readonly LOAD_TARGETED: 1048576; + readonly LOAD_CALL_CONTENT_SNIFFERS: 2097152; + readonly LOAD_BYPASS_URL_CLASSIFIER: 4194304; + readonly LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE: 8388608; + readonly LOAD_EXPLICIT_CREDENTIALS: 16777216; + readonly LOAD_BYPASS_SERVICE_WORKER: 33554432; + readonly DISPOSITION_INLINE: 0; + readonly DISPOSITION_ATTACHMENT: 1; + readonly DISPOSITION_FORCE_INLINE: 2; + + originalURI: nsIURI; + readonly URI: nsIURI; + owner: nsISupports; + notificationCallbacks: nsIInterfaceRequestor; + readonly securityInfo: nsITransportSecurityInfo; + contentType: string; + contentCharset: string; + contentLength: i64; + open(): nsIInputStream; + asyncOpen(aListener: nsIStreamListener): void; + readonly canceled: boolean; + contentDisposition: u32; + contentDispositionFilename: string; + readonly contentDispositionHeader: string; + loadInfo: nsILoadInfo; + readonly isDocument: boolean; +} + +interface nsIIdentChannel extends nsIChannel { + channelId: u64; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIChannelEventSink.idl + +interface nsIChannelEventSink extends nsISupports { + readonly REDIRECT_TEMPORARY: 1; + readonly REDIRECT_PERMANENT: 2; + readonly REDIRECT_INTERNAL: 4; + readonly REDIRECT_STS_UPGRADE: 8; + readonly REDIRECT_AUTH_RETRY: 16; + + asyncOnChannelRedirect(oldChannel: nsIChannel, newChannel: nsIChannel, flags: u32, callback: nsIAsyncVerifyRedirectCallback): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIChildChannel.idl + +interface nsIChildChannel extends nsISupports { + connectParent(registrarId: u32): void; + completeRedirectSetup(aListener: nsIStreamListener): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIClassOfService.idl + +interface nsIClassOfService extends nsISupports { + readonly Leader: 1; + readonly Follower: 2; + readonly Speculative: 4; + readonly Background: 8; + readonly Unblocked: 16; + readonly Throttleable: 32; + readonly UrgentStart: 64; + readonly DontThrottle: 128; + readonly Tail: 256; + readonly TailAllowed: 512; + readonly TailForbidden: 1024; + + classFlags: u32; + incremental: boolean; + clearClassFlags(flags: u32): void; + addClassFlags(flags: u32): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIClassifiedChannel.idl + +} // global + +declare namespace nsIClassifiedChannel { + +enum ClassificationFlags { + CLASSIFIED_FINGERPRINTING = 1, + CLASSIFIED_FINGERPRINTING_CONTENT = 128, + CLASSIFIED_CRYPTOMINING = 2, + CLASSIFIED_CRYPTOMINING_CONTENT = 256, + CLASSIFIED_TRACKING = 4, + CLASSIFIED_TRACKING_AD = 8, + CLASSIFIED_TRACKING_ANALYTICS = 16, + CLASSIFIED_TRACKING_SOCIAL = 32, + CLASSIFIED_TRACKING_CONTENT = 64, + CLASSIFIED_SOCIALTRACKING = 512, + CLASSIFIED_SOCIALTRACKING_FACEBOOK = 1024, + CLASSIFIED_SOCIALTRACKING_LINKEDIN = 2048, + CLASSIFIED_SOCIALTRACKING_TWITTER = 4096, + CLASSIFIED_EMAILTRACKING = 8192, + CLASSIFIED_EMAILTRACKING_CONTENT = 16384, + CLASSIFIED_ANY_BASIC_TRACKING = 61, + CLASSIFIED_ANY_STRICT_TRACKING = 253, + CLASSIFIED_ANY_SOCIAL_TRACKING = 7680, +} + +} + +declare global { + +interface nsIClassifiedChannel extends nsISupports, Enums<typeof nsIClassifiedChannel.ClassificationFlags> { + setMatchedInfo(aList: string, aProvider: string, aFullHash: string): void; + readonly matchedList: string; + readonly matchedProvider: string; + readonly matchedFullHash: string; + setMatchedTrackingInfo(aLists: string[], aFullHashes: string[]): void; + readonly matchedTrackingLists: string[]; + readonly matchedTrackingFullHashes: string[]; + readonly firstPartyClassificationFlags: u32; + readonly thirdPartyClassificationFlags: u32; + readonly classificationFlags: u32; + isThirdPartyTrackingResource(): boolean; + isThirdPartySocialTrackingResource(): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIContentSniffer.idl + +interface nsIContentSniffer extends nsISupports { + getMIMETypeFromContent(aRequest: nsIRequest, aData: u8[], aLength: u32): string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIDHCPClient.idl + +interface nsIDHCPClient extends nsISupports { + getOption(option: u8): string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIDashboard.idl + +type nsINetDashboardCallback = Callable<{ + onDashboardDataAvailable(data: any): void; +}> + +interface nsIDashboard extends nsISupports { + requestSockets(cb: nsINetDashboardCallback): void; + requestHttpConnections(cb: nsINetDashboardCallback): void; + requestWebsocketConnections(cb: nsINetDashboardCallback): void; + requestDNSInfo(cb: nsINetDashboardCallback): void; + requestConnection(aHost: string, aPort: u32, aProtocol: string, aTimeout: u32, cb: nsINetDashboardCallback): void; + enableLogging: boolean; + requestDNSLookup(aHost: string, cb: nsINetDashboardCallback): void; + requestDNSHTTPSRRLookup(aHost: string, cb: nsINetDashboardCallback): void; + requestRcwnStats(cb: nsINetDashboardCallback): void; + getLogPath(): string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIDashboardEventNotifier.idl + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIDownloader.idl + +interface nsIDownloader extends nsIStreamListener { + init(observer: nsIDownloadObserver, downloadLocation: nsIFile): void; +} + +interface nsIDownloadObserver extends nsISupports { + onDownloadComplete(downloader: nsIDownloader, request: nsIRequest, status: nsresult, result: nsIFile): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIEncodedChannel.idl + +interface nsIEncodedChannel extends nsISupports { + readonly contentEncodings: nsIUTF8StringEnumerator; + applyConversion: boolean; + hasContentDecompressed: boolean; + doApplyContentConversions(aNextListener: nsIStreamListener, aNewNextListener: OutParam<nsIStreamListener>, aCtxt: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIExternalProtocolHandler.idl + +interface nsIExternalProtocolHandler extends nsIProtocolHandler { + externalAppExistsForScheme(scheme: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIFileStreams.idl + +interface nsIFileInputStream extends nsIInputStream { + readonly CLOSE_ON_EOF: 4; + readonly REOPEN_ON_REWIND: 8; + readonly DEFER_OPEN: 16; + readonly SHARE_DELETE: 32; + + init(file: nsIFile, ioFlags: i32, perm: i32, behaviorFlags: i32): void; +} + +interface nsIFileOutputStream extends nsIOutputStream { + readonly DEFER_OPEN: 1; + + init(file: nsIFile, ioFlags: i32, perm: i32, behaviorFlags: i32): void; +} + +interface nsIFileRandomAccessStream extends nsIRandomAccessStream { + readonly DEFER_OPEN: 1; + + init(file: nsIFile, ioFlags: i32, perm: i32, behaviorFlags: i32): void; +} + +interface nsIFileMetadata extends nsISupports { + readonly size: i64; + readonly lastModified: i64; +} + +interface nsIAsyncFileMetadata extends nsIFileMetadata { + asyncFileMetadataWait(aCallback: nsIFileMetadataCallback, aEventTarget: nsIEventTarget): void; +} + +type nsIFileMetadataCallback = Callable<{ + onFileMetadataReady(aObject: nsIAsyncFileMetadata): void; +}> + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIFileURL.idl + +interface nsIFileURL extends nsIURL { + readonly file: nsIFile; +} + +interface nsIFileURLMutator extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIForcePendingChannel.idl + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIFormPOSTActionChannel.idl + +interface nsIFormPOSTActionChannel extends nsIUploadChannel { +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIHttpAuthenticatorCallback.idl + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIHttpPushListener.idl + +interface nsIHttpPushListener extends nsISupports { + onPush(associatedChannel: nsIHttpChannel, pushChannel: nsIHttpChannel): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIIOService.idl + +interface nsIIOService extends nsISupports { + getProtocolHandler(aScheme: string): nsIProtocolHandler; + getProtocolFlags(aScheme: string): u32; + getDynamicProtocolFlags(aURI: nsIURI): u32; + getDefaultPort(aScheme: string): i32; + newURI(aSpec: string, aOriginCharset?: string, aBaseURI?: nsIURI): nsIURI; + newFileURI(aFile: nsIFile): nsIURI; + createExposableURI(aURI: nsIURI): nsIURI; + newChannelFromURI(aURI: nsIURI, aLoadingNode: Node, aLoadingPrincipal: nsIPrincipal, aTriggeringPrincipal: nsIPrincipal, aSecurityFlags: u32, aContentPolicyType: nsContentPolicyType): nsIChannel; + newChannelFromURIWithLoadInfo(aURI: nsIURI, aLoadInfo: nsILoadInfo): nsIChannel; + newChannel(aSpec: string, aOriginCharset: string, aBaseURI: nsIURI, aLoadingNode: Node, aLoadingPrincipal: nsIPrincipal, aTriggeringPrincipal: nsIPrincipal, aSecurityFlags: u32, aContentPolicyType: nsContentPolicyType): nsIChannel; + newWebTransport(): nsIWebTransport; + offline: boolean; + readonly connectivity: boolean; + allowPort(aPort: i32, aScheme: string): boolean; + extractScheme(urlString: string): string; + hostnameIsLocalIPAddress(aURI: nsIURI): boolean; + hostnameIsSharedIPAddress(aURI: nsIURI): boolean; + isValidHostname(hostname: string): boolean; + manageOfflineStatus: boolean; + newChannelFromURIWithProxyFlags(aURI: nsIURI, aProxyURI: nsIURI, aProxyFlags: u32, aLoadingNode: Node, aLoadingPrincipal: nsIPrincipal, aTriggeringPrincipal: nsIPrincipal, aSecurityFlags: u32, aContentPolicyType: nsContentPolicyType): nsIChannel; + readonly socketProcessLaunched: boolean; + readonly socketProcessId: u64; + registerProtocolHandler(aScheme: string, aHandler: nsIProtocolHandler, aProtocolFlags: u32, aDefaultPort: i32): void; + unregisterProtocolHandler(aScheme: string): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIIncrementalDownload.idl + +interface nsIIncrementalDownload extends nsIRequest { + init(uri: nsIURI, destination: nsIFile, chunkSize: i32, intervalInSeconds: i32): void; + readonly URI: nsIURI; + readonly finalURI: nsIURI; + readonly destination: nsIFile; + readonly totalSize: i64; + readonly currentSize: i64; + start(observer: nsIRequestObserver, ctxt: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIIncrementalStreamLoader.idl + +interface nsIIncrementalStreamLoaderObserver extends nsISupports { + onIncrementalData(loader: nsIIncrementalStreamLoader, ctxt: nsISupports, dataLength: u32, data: u8[], consumedLength: InOutParam<u32>): void; + onStreamComplete(loader: nsIIncrementalStreamLoader, ctxt: nsISupports, status: nsresult, resultLength: u32, result: u8[]): void; +} + +interface nsIIncrementalStreamLoader extends nsIThreadRetargetableStreamListener { + init(aObserver: nsIIncrementalStreamLoaderObserver): void; + readonly numBytesRead: u32; + readonly request: nsIRequest; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIInputStreamChannel.idl + +interface nsIInputStreamChannel extends nsISupports { + setURI(aURI: nsIURI): void; + contentStream: nsIInputStream; + srcdocData: string; + readonly isSrcdocChannel: boolean; + baseURI: nsIURI; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIInputStreamPump.idl + +interface nsIInputStreamPump extends nsIRequest { + init(aStream: nsIInputStream, aSegmentSize: u32, aSegmentCount: u32, aCloseWhenDone: boolean, aMainThreadTarget?: nsISerialEventTarget): void; + asyncRead(aListener: nsIStreamListener): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIInterceptionInfo.idl + +interface nsIInterceptionInfo extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsILoadContextInfo.idl + +interface nsILoadContextInfo extends nsISupports { + readonly isPrivate: boolean; + readonly isAnonymous: boolean; + readonly originAttributes: any; +} + +interface nsILoadContextInfoFactory extends nsISupports { + readonly default: nsILoadContextInfo; + readonly private: nsILoadContextInfo; + readonly anonymous: nsILoadContextInfo; + custom(aAnonymous: boolean, aOriginAttributes: any): nsILoadContextInfo; + fromLoadContext(aLoadContext: nsILoadContext, aAnonymous: boolean): nsILoadContextInfo; + fromWindow(aWindow: nsIDOMWindow, aAnonymous: boolean): nsILoadContextInfo; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsILoadGroup.idl + +interface nsILoadGroup extends nsIRequest { + groupObserver: nsIRequestObserver; + defaultLoadRequest: nsIRequest; + addRequest(aRequest: nsIRequest, aContext: nsISupports): void; + removeRequest(aRequest: nsIRequest, aContext: nsISupports, aStatus: nsresult): void; + readonly requests: nsISimpleEnumerator; + readonly activeCount: u32; + notificationCallbacks: nsIInterfaceRequestor; + readonly requestContextID: u64; + defaultLoadFlags: nsLoadFlags; + readonly isBrowsingContextDiscarded: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsILoadGroupChild.idl + +interface nsILoadGroupChild extends nsISupports { + parentLoadGroup: nsILoadGroup; + readonly childLoadGroup: nsILoadGroup; + readonly rootLoadGroup: nsILoadGroup; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsILoadInfo.idl + +} // global + +declare namespace nsILoadInfo { + +enum StoragePermissionState { + NoStoragePermission = 0, + HasStoragePermission = 1, + StoragePermissionAllowListed = 2, +} + +enum CrossOriginOpenerPolicy { + OPENER_POLICY_UNSAFE_NONE = 0, + OPENER_POLICY_SAME_ORIGIN = 1, + OPENER_POLICY_SAME_ORIGIN_ALLOW_POPUPS = 2, + OPENER_POLICY_EMBEDDER_POLICY_REQUIRE_CORP_FLAG = 16, + OPENER_POLICY_SAME_ORIGIN_EMBEDDER_POLICY_REQUIRE_CORP = 17, +} + +enum CrossOriginEmbedderPolicy { + EMBEDDER_POLICY_NULL = 0, + EMBEDDER_POLICY_REQUIRE_CORP = 1, + EMBEDDER_POLICY_CREDENTIALLESS = 2, +} + +} + +declare global { + +interface nsILoadInfo extends nsISupports, Enums<typeof nsILoadInfo.StoragePermissionState & typeof nsILoadInfo.CrossOriginOpenerPolicy & typeof nsILoadInfo.CrossOriginEmbedderPolicy> { + readonly SEC_ONLY_FOR_EXPLICIT_CONTENTSEC_CHECK: 0; + readonly SEC_REQUIRE_SAME_ORIGIN_INHERITS_SEC_CONTEXT: 1; + readonly SEC_REQUIRE_SAME_ORIGIN_DATA_IS_BLOCKED: 2; + readonly SEC_ALLOW_CROSS_ORIGIN_INHERITS_SEC_CONTEXT: 4; + readonly SEC_ALLOW_CROSS_ORIGIN_SEC_CONTEXT_IS_NULL: 8; + readonly SEC_REQUIRE_CORS_INHERITS_SEC_CONTEXT: 16; + readonly SEC_COOKIES_DEFAULT: 0; + readonly SEC_COOKIES_INCLUDE: 32; + readonly SEC_COOKIES_SAME_ORIGIN: 64; + readonly SEC_COOKIES_OMIT: 96; + readonly SEC_FORCE_INHERIT_PRINCIPAL: 128; + readonly SEC_ABOUT_BLANK_INHERITS: 512; + readonly SEC_ALLOW_CHROME: 1024; + readonly SEC_DISALLOW_SCRIPT: 2048; + readonly SEC_DONT_FOLLOW_REDIRECTS: 4096; + readonly SEC_LOAD_ERROR_PAGE: 8192; + readonly SEC_FORCE_INHERIT_PRINCIPAL_OVERRULE_OWNER: 16384; + readonly HTTPS_ONLY_UNINITIALIZED: 1; + readonly HTTPS_ONLY_UPGRADED_LISTENER_NOT_REGISTERED: 2; + readonly HTTPS_ONLY_UPGRADED_LISTENER_REGISTERED: 4; + readonly HTTPS_ONLY_EXEMPT: 8; + readonly HTTPS_ONLY_TOP_LEVEL_LOAD_IN_PROGRESS: 16; + readonly HTTPS_ONLY_DOWNLOAD_IN_PROGRESS: 32; + readonly HTTPS_ONLY_DO_NOT_LOG_TO_CONSOLE: 64; + readonly HTTPS_ONLY_UPGRADED_HTTPS_FIRST: 128; + readonly HTTPS_ONLY_BYPASS_ORB: 256; + readonly HTTPS_FIRST_EXEMPT_NEXT_LOAD: 512; + readonly TAINTING_BASIC: 0; + readonly TAINTING_CORS: 1; + readonly TAINTING_OPAQUE: 2; + readonly BLOCKING_REASON_NONE: 0; + readonly BLOCKING_REASON_CORSDISABLED: 1001; + readonly BLOCKING_REASON_CORSDIDNOTSUCCEED: 1002; + readonly BLOCKING_REASON_CORSREQUESTNOTHTTP: 1003; + readonly BLOCKING_REASON_CORSMULTIPLEALLOWORIGINNOTALLOWED: 1004; + readonly BLOCKING_REASON_CORSMISSINGALLOWORIGIN: 1005; + readonly BLOCKING_REASON_CORSNOTSUPPORTINGCREDENTIALS: 1006; + readonly BLOCKING_REASON_CORSALLOWORIGINNOTMATCHINGORIGIN: 1007; + readonly BLOCKING_REASON_CORSMISSINGALLOWCREDENTIALS: 1008; + readonly BLOCKING_REASON_CORSORIGINHEADERNOTADDED: 1009; + readonly BLOCKING_REASON_CORSEXTERNALREDIRECTNOTALLOWED: 1010; + readonly BLOCKING_REASON_CORSPREFLIGHTDIDNOTSUCCEED: 1011; + readonly BLOCKING_REASON_CORSINVALIDALLOWMETHOD: 1012; + readonly BLOCKING_REASON_CORSMETHODNOTFOUND: 1013; + readonly BLOCKING_REASON_CORSINVALIDALLOWHEADER: 1014; + readonly BLOCKING_REASON_CORSMISSINGALLOWHEADERFROMPREFLIGHT: 1015; + readonly BLOCKING_REASON_CLASSIFY_MALWARE_URI: 2001; + readonly BLOCKING_REASON_CLASSIFY_PHISHING_URI: 2002; + readonly BLOCKING_REASON_CLASSIFY_UNWANTED_URI: 2003; + readonly BLOCKING_REASON_CLASSIFY_TRACKING_URI: 2004; + readonly BLOCKING_REASON_CLASSIFY_BLOCKED_URI: 2005; + readonly BLOCKING_REASON_CLASSIFY_HARMFUL_URI: 2006; + readonly BLOCKING_REASON_CLASSIFY_CRYPTOMINING_URI: 2007; + readonly BLOCKING_REASON_CLASSIFY_FINGERPRINTING_URI: 2008; + readonly BLOCKING_REASON_CLASSIFY_SOCIALTRACKING_URI: 2009; + readonly BLOCKING_REASON_CLASSIFY_EMAILTRACKING_URI: 2010; + readonly BLOCKING_REASON_MIXED_BLOCKED: 3001; + readonly BLOCKING_REASON_CONTENT_POLICY_GENERAL: 4000; + readonly BLOCKING_REASON_CONTENT_POLICY_NO_DATA_PROTOCOL: 4001; + readonly BLOCKING_REASON_CONTENT_POLICY_CONTENT_BLOCKED: 4003; + readonly BLOCKING_REASON_CONTENT_POLICY_DATA_DOCUMENT: 4004; + readonly BLOCKING_REASON_CONTENT_POLICY_WEB_BROWSER: 4005; + readonly BLOCKING_REASON_CONTENT_POLICY_PRELOAD: 4006; + readonly BLOCKING_REASON_NOT_SAME_ORIGIN: 5000; + readonly BLOCKING_REASON_EXTENSION_WEBREQUEST: 6000; + readonly BLOCKING_REASON_WEBDRIVER_BIDI: 7000; + + readonly loadingPrincipal: nsIPrincipal; + readonly triggeringPrincipal: nsIPrincipal; + triggeringRemoteType: string; + principalToInherit: nsIPrincipal; + readonly loadingDocument: Document; + readonly loadingContext: nsISupports; + readonly securityFlags: nsSecurityFlags; + readonly sandboxFlags: u32; + triggeringSandboxFlags: u32; + triggeringWindowId: u64; + triggeringStorageAccess: boolean; + readonly securityMode: u32; + skipContentSniffing: boolean; + httpsOnlyStatus: u32; + hstsStatus: boolean; + hasValidUserGestureActivation: boolean; + allowDeprecatedSystemRequests: boolean; + parserCreatedScript: boolean; + isUserTriggeredSave: boolean; + isInDevToolsContext: boolean; + isInThirdPartyContext: boolean; + isThirdPartyContextToTopWindow: boolean; + readonly cookiePolicy: u32; + cookieJarSettings: nsICookieJarSettings; + storagePermission: nsILoadInfo.StoragePermissionState; + isMetaRefresh: boolean; + readonly forceInheritPrincipal: boolean; + readonly forceInheritPrincipalOverruleOwner: boolean; + readonly loadingSandboxed: boolean; + readonly aboutBlankInherits: boolean; + readonly allowChrome: boolean; + readonly disallowScript: boolean; + readonly dontFollowRedirects: boolean; + readonly loadErrorPage: boolean; + isFormSubmission: boolean; + readonly externalContentPolicyType: nsContentPolicyType; + sendCSPViolationEvents: boolean; + readonly internalContentPolicyType: nsContentPolicyType; + readonly blockAllMixedContent: boolean; + readonly upgradeInsecureRequests: boolean; + readonly browserUpgradeInsecureRequests: boolean; + browserDidUpgradeInsecureRequests: boolean; + readonly browserWouldUpgradeInsecureRequests: boolean; + forceAllowDataURI: boolean; + allowInsecureRedirectToDataURI: boolean; + skipContentPolicyCheckForWebRequest: boolean; + originalFrameSrcLoad: boolean; + readonly forceInheritPrincipalDropped: boolean; + readonly innerWindowID: u64; + readonly browsingContextID: u64; + readonly browsingContext: BrowsingContext; + workerAssociatedBrowsingContextID: u64; + readonly workerAssociatedBrowsingContext: BrowsingContext; + readonly frameBrowsingContextID: u64; + readonly frameBrowsingContext: BrowsingContext; + readonly targetBrowsingContextID: u64; + readonly targetBrowsingContext: BrowsingContext; + resetPrincipalToInheritToNullPrincipal(): void; + originAttributes: any; + initialSecurityCheckDone: boolean; + loadTriggeredFromExternal: boolean; + appendRedirectHistoryEntry(channelToDeriveFrom: nsIChannel, isInternalRedirect: boolean): void; + readonly redirectChainIncludingInternalRedirects: any; + readonly redirectChain: any; + readonly forcePreflight: boolean; + readonly isPreflight: boolean; + readonly tainting: u32; + maybeIncreaseTainting(aTainting: u32): void; + readonly isTopLevelLoad: boolean; + resultPrincipalURI: nsIURI; + channelCreationOriginalURI: nsIURI; + documentHasUserInteracted: boolean; + allowListFutureDocumentsCreatedFromThisRedirectChain: boolean; + needForCheckingAntiTrackingHeuristic: boolean; + cspNonce: string; + integrityMetadata: string; + requestBlockingReason: u32; + cspEventListener: nsICSPEventListener; + readonly isFromProcessingFrameAttributes: boolean; + loadingEmbedderPolicy: nsILoadInfo.CrossOriginEmbedderPolicy; + isOriginTrialCoepCredentiallessEnabledForTopLevel: boolean; + isMediaRequest: boolean; + isMediaInitialRequest: boolean; + isFromObjectOrEmbed: boolean; + readonly shouldSkipCheckForBrokenURLOrZeroSized: boolean; + unstrippedURI: nsIURI; + hasInjectedCookieForCookieBannerHandling: boolean; + wasSchemelessInput: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIMIMEInputStream.idl + +interface nsIMIMEInputStream extends nsIInputStream { + addHeader(name: string, value: string): void; + visitHeaders(visitor: nsIHttpHeaderVisitor): void; + setData(stream: nsIInputStream): void; + readonly data: nsIInputStream; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIMultiPartChannel.idl + +interface nsIMultiPartChannel extends nsISupports { + readonly baseChannel: nsIChannel; + readonly partID: u32; + readonly isLastPart: boolean; +} + +interface nsIMultiPartChannelListener extends nsISupports { + onAfterLastPart(status: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINestedURI.idl + +interface nsINestedURI extends nsISupports { + readonly innerURI: nsIURI; + readonly innermostURI: nsIURI; +} + +interface nsINestedURIMutator extends nsISupports { +} + +interface nsINestedAboutURIMutator extends nsISupports { +} + +interface nsIJSURIMutator extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetAddr.idl + +interface nsINetAddr extends nsISupports { + readonly FAMILY_INET: 1; + readonly FAMILY_INET6: 2; + readonly FAMILY_LOCAL: 3; + + readonly family: u16; + readonly address: string; + readonly port: u16; + readonly flow: u32; + readonly scope: u32; + readonly isV4Mapped: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetUtil.idl + +interface nsINetUtil extends nsISupports { + readonly ESCAPE_ALL: 0; + readonly ESCAPE_XALPHAS: 1; + readonly ESCAPE_XPALPHAS: 2; + readonly ESCAPE_URL_PATH: 4; + readonly ESCAPE_URL_APPLE_EXTRA: 8; + readonly ESCAPE_URL_SCHEME: 1; + readonly ESCAPE_URL_USERNAME: 2; + readonly ESCAPE_URL_PASSWORD: 4; + readonly ESCAPE_URL_HOST: 8; + readonly ESCAPE_URL_DIRECTORY: 16; + readonly ESCAPE_URL_FILE_BASENAME: 32; + readonly ESCAPE_URL_FILE_EXTENSION: 64; + readonly ESCAPE_URL_PARAM: 128; + readonly ESCAPE_URL_QUERY: 256; + readonly ESCAPE_URL_REF: 512; + readonly ESCAPE_URL_FILEPATH: 112; + readonly ESCAPE_URL_MINIMAL: 1023; + readonly ESCAPE_URL_FORCED: 1024; + readonly ESCAPE_URL_ONLY_ASCII: 2048; + readonly ESCAPE_URL_ONLY_NONASCII: 4096; + readonly ESCAPE_URL_COLON: 16384; + readonly ESCAPE_URL_SKIP_CONTROL: 32768; + readonly ESCAPE_URL_EXT_HANDLER: 131072; + + parseRequestContentType(aTypeHeader: string, aCharset: OutParam<string>, aHadCharset: OutParam<boolean>): string; + parseResponseContentType(aTypeHeader: string, aCharset: OutParam<string>, aHadCharset: OutParam<boolean>): string; + protocolHasFlags(aURI: nsIURI, aFlag: u32): boolean; + URIChainHasFlags(aURI: nsIURI, aFlags: u32): boolean; + escapeString(aString: string, aEscapeType: u32): string; + escapeURL(aStr: string, aFlags: u32): string; + unescapeString(aStr: string, aFlags: u32): string; + extractCharsetFromContentType(aTypeHeader: string, aCharset: OutParam<string>, aCharsetStart: OutParam<i32>, aCharsetEnd: OutParam<i32>): boolean; + socketProcessTelemetryPing(): void; + notImplemented(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkConnectivityService.idl + +} // global + +declare namespace nsINetworkConnectivityService { + +enum ConnectivityState { + UNKNOWN = 0, + OK = 1, + NOT_AVAILABLE = 2, +} + +} + +declare global { + +interface nsINetworkConnectivityService extends nsISupports, Enums<typeof nsINetworkConnectivityService.ConnectivityState> { + readonly DNSv4: nsINetworkConnectivityService.ConnectivityState; + readonly DNSv6: nsINetworkConnectivityService.ConnectivityState; + readonly IPv4: nsINetworkConnectivityService.ConnectivityState; + readonly IPv6: nsINetworkConnectivityService.ConnectivityState; + readonly NAT64: nsINetworkConnectivityService.ConnectivityState; + recheckDNS(): void; + recheckIPConnectivity(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkInfoService.idl + +interface nsIListNetworkAddressesListener extends nsISupports { + onListedNetworkAddresses(aAddressArray: string[]): void; + onListNetworkAddressesFailed(): void; +} + +interface nsIGetHostnameListener extends nsISupports { + onGotHostname(aHostname: string): void; + onGetHostnameFailed(): void; +} + +interface nsINetworkInfoService extends nsISupports { + listNetworkAddresses(aListener: nsIListNetworkAddressesListener): void; + getHostname(aListener: nsIGetHostnameListener): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkInterceptController.idl + +interface nsIInterceptedBodyCallback extends nsISupports { + bodyComplete(aRv: nsresult): void; +} + +interface nsIInterceptedChannel extends nsISupports { + resetInterception(bypass: boolean): void; + synthesizeStatus(status: u16, reason: string): void; + synthesizeHeader(name: string, value: string): void; + startSynthesizedResponse(body: nsIInputStream, callback: nsIInterceptedBodyCallback, channel: nsICacheInfoChannel, finalURLSpec: string, responseRedirected: boolean): void; + finishSynthesizedResponse(): void; + cancelInterception(status: nsresult): void; + readonly channel: nsIChannel; + readonly secureUpgradedChannelURI: nsIURI; +} + +interface nsINetworkInterceptController extends nsISupports { + shouldPrepareForIntercept(aURI: nsIURI, aChannel: nsIChannel): boolean; + channelIntercepted(aChannel: nsIInterceptedChannel): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkLinkService.idl + +interface nsINetworkLinkService extends nsISupports { + readonly LINK_TYPE_UNKNOWN: 0; + readonly LINK_TYPE_ETHERNET: 1; + readonly LINK_TYPE_USB: 2; + readonly LINK_TYPE_WIFI: 3; + readonly LINK_TYPE_WIMAX: 4; + readonly LINK_TYPE_MOBILE: 9; + readonly NONE_DETECTED: 0; + readonly VPN_DETECTED: 1; + readonly PROXY_DETECTED: 2; + readonly NRPT_DETECTED: 4; + + readonly isLinkUp: boolean; + readonly linkStatusKnown: boolean; + readonly linkType: u32; + readonly networkID: string; + readonly dnsSuffixList: string[]; + readonly resolvers: nsINetAddr[]; + readonly platformDNSIndications: u32; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkPredictor.idl + +interface nsINetworkPredictor extends nsISupports { + readonly PREDICT_LINK: 0; + readonly PREDICT_LOAD: 1; + readonly PREDICT_STARTUP: 2; + readonly LEARN_LOAD_TOPLEVEL: 0; + readonly LEARN_LOAD_SUBRESOURCE: 1; + readonly LEARN_LOAD_REDIRECT: 2; + readonly LEARN_STARTUP: 3; + + predict(targetURI: nsIURI, sourceURI: nsIURI, reason: PredictorPredictReason, originAttributes: any, verifier: nsINetworkPredictorVerifier): void; + learn(targetURI: nsIURI, sourceURI: nsIURI, reason: PredictorLearnReason, originAttributes: any): void; + reset(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINetworkPredictorVerifier.idl + +interface nsINetworkPredictorVerifier extends nsISupports { + onPredictPrefetch(uri: nsIURI, status: u32): void; + onPredictPreconnect(uri: nsIURI): void; + onPredictDNS(uri: nsIURI): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsINullChannel.idl + +interface nsINullChannel extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIParentChannel.idl + +interface nsIParentChannel extends nsIStreamListener { + delete(): void; + readonly remoteType: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIParentRedirectingChannel.idl + +interface nsIParentRedirectingChannel extends nsIParentChannel { + startRedirect(newChannel: nsIChannel, redirectFlags: u32, callback: nsIAsyncVerifyRedirectCallback): void; + continueVerification(callback: nsIAsyncVerifyRedirectReadyCallback): void; + completeRedirect(succeeded: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIPermission.idl + +interface nsIPermission extends nsISupports { + readonly principal: nsIPrincipal; + readonly type: string; + readonly capability: u32; + readonly expireType: u32; + readonly expireTime: i64; + readonly modificationTime: i64; + matches(principal: nsIPrincipal, exactHost: boolean): boolean; + matchesURI(uri: nsIURI, exactHost: boolean): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIPermissionManager.idl + +interface nsIPermissionManager extends nsISupports { + readonly UNKNOWN_ACTION: 0; + readonly ALLOW_ACTION: 1; + readonly DENY_ACTION: 2; + readonly PROMPT_ACTION: 3; + readonly EXPIRE_NEVER: 0; + readonly EXPIRE_SESSION: 1; + readonly EXPIRE_TIME: 2; + readonly EXPIRE_POLICY: 3; + + getAllForPrincipal(principal: nsIPrincipal): nsIPermission[]; + getAllWithTypePrefix(prefix: string): nsIPermission[]; + getAllByTypes(types: string[]): nsIPermission[]; + getAllByTypeSince(type: string, since: i64): nsIPermission[]; + addFromPrincipal(principal: nsIPrincipal, type: string, permission: u32, expireType?: u32, expireTime?: i64): void; + addFromPrincipalAndPersistInPrivateBrowsing(principal: nsIPrincipal, type: string, permission: u32): void; + removeFromPrincipal(principal: nsIPrincipal, type: string): void; + removePermission(perm: nsIPermission): void; + removeAll(): void; + removeAllSince(since: i64): void; + removeByType(type: string): void; + removeByTypeSince(type: string, since: i64): void; + testPermissionFromPrincipal(principal: nsIPrincipal, type: string): u32; + testExactPermissionFromPrincipal(principal: nsIPrincipal, type: string): u32; + testExactPermanentPermission(principal: nsIPrincipal, type: string): u32; + getPermissionObject(principal: nsIPrincipal, type: string, exactHost: boolean): nsIPermission; + readonly all: nsIPermission[]; + removePermissionsWithAttributes(patternAsJSON: string): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIPrivateBrowsingChannel.idl + +interface nsIPrivateBrowsingChannel extends nsISupports { + setPrivate(aPrivate: boolean): void; + readonly isChannelPrivate: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProgressEventSink.idl + +interface nsIProgressEventSink extends nsISupports { + onProgress(aRequest: nsIRequest, aProgress: i64, aProgressMax: i64): void; + onStatus(aRequest: nsIRequest, aStatus: nsresult, aStatusArg: string): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIPrompt.idl + +interface nsIPrompt extends nsISupports { + readonly BUTTON_POS_0: 1; + readonly BUTTON_POS_1: 256; + readonly BUTTON_POS_2: 65536; + readonly BUTTON_TITLE_OK: 1; + readonly BUTTON_TITLE_CANCEL: 2; + readonly BUTTON_TITLE_YES: 3; + readonly BUTTON_TITLE_NO: 4; + readonly BUTTON_TITLE_SAVE: 5; + readonly BUTTON_TITLE_DONT_SAVE: 6; + readonly BUTTON_TITLE_REVERT: 7; + readonly BUTTON_TITLE_IS_STRING: 127; + readonly BUTTON_POS_0_DEFAULT: 0; + readonly BUTTON_POS_1_DEFAULT: 16777216; + readonly BUTTON_POS_2_DEFAULT: 33554432; + readonly BUTTON_DELAY_ENABLE: 67108864; + readonly SHOW_SPINNER: 134217728; + readonly STD_OK_CANCEL_BUTTONS: 513; + readonly STD_YES_NO_BUTTONS: 1027; + readonly MODAL_TYPE_CONTENT: 1; + readonly MODAL_TYPE_TAB: 2; + readonly MODAL_TYPE_WINDOW: 3; + readonly MODAL_TYPE_INTERNAL_WINDOW: 4; + + alert(dialogTitle: string, text: string): void; + alertCheck(dialogTitle: string, text: string, checkMsg: string, checkValue: InOutParam<boolean>): void; + confirm(dialogTitle: string, text: string): boolean; + confirmCheck(dialogTitle: string, text: string, checkMsg: string, checkValue: InOutParam<boolean>): boolean; + confirmEx(dialogTitle: string, text: string, buttonFlags: u32, button0Title: string, button1Title: string, button2Title: string, checkMsg: string, checkValue: InOutParam<boolean>): i32; + prompt(dialogTitle: string, text: string, value: InOutParam<string>, checkMsg: string, checkValue: InOutParam<boolean>): boolean; + promptPassword(dialogTitle: string, text: string, password: InOutParam<string>): boolean; + promptUsernameAndPassword(dialogTitle: string, text: string, username: InOutParam<string>, password: InOutParam<string>): boolean; + select(dialogTitle: string, text: string, selectList: string[], outSelection: OutParam<i32>): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolHandler.idl + +interface nsIProtocolHandlerWithDynamicFlags extends nsISupports { + getFlagsForURI(aURI: nsIURI): u32; +} + +interface nsIProtocolHandler extends nsISupports { + readonly URI_STD: 0; + readonly URI_NORELATIVE: 1; + readonly URI_NOAUTH: 2; + readonly ALLOWS_PROXY: 4; + readonly ALLOWS_PROXY_HTTP: 8; + readonly URI_INHERITS_SECURITY_CONTEXT: 16; + readonly URI_FORBIDS_AUTOMATIC_DOCUMENT_REPLACEMENT: 32; + readonly URI_LOADABLE_BY_ANYONE: 64; + readonly URI_DANGEROUS_TO_LOAD: 128; + readonly URI_IS_UI_RESOURCE: 256; + readonly URI_IS_LOCAL_FILE: 512; + readonly URI_LOADABLE_BY_SUBSUMERS: 1024; + readonly URI_DOES_NOT_RETURN_DATA: 2048; + readonly URI_IS_LOCAL_RESOURCE: 4096; + readonly URI_OPENING_EXECUTES_SCRIPT: 8192; + readonly URI_NON_PERSISTABLE: 16384; + readonly URI_CROSS_ORIGIN_NEEDS_WEBAPPS_PERM: 32768; + readonly URI_SYNC_LOAD_IS_OK: 65536; + readonly URI_IS_POTENTIALLY_TRUSTWORTHY: 131072; + readonly URI_FETCHABLE_BY_ANYONE: 262144; + readonly ORIGIN_IS_FULL_SPEC: 524288; + readonly URI_SCHEME_NOT_SELF_LINKABLE: 1048576; + readonly URI_LOADABLE_BY_EXTENSIONS: 2097152; + readonly URI_DISALLOW_IN_PRIVATE_CONTEXT: 4194304; + readonly URI_FORBIDS_COOKIE_ACCESS: 8388608; + readonly WEBEXT_URI_WEB_ACCESSIBLE: 16777216; + readonly URI_HAS_WEB_EXPOSED_ORIGIN: 33554432; + readonly DYNAMIC_URI_FLAGS: 57016512; + + readonly scheme: string; + newChannel(aURI: nsIURI, aLoadinfo: nsILoadInfo): nsIChannel; + allowPort(port: i32, scheme: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolProxyCallback.idl + +interface nsIProtocolProxyCallback extends nsISupports { + onProxyAvailable(aRequest: nsICancelable, aChannel: nsIChannel, aProxyInfo: nsIProxyInfo, aStatus: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolProxyFilter.idl + +interface nsIProxyProtocolFilterResult extends nsISupports { + onProxyFilterResult(aProxy: nsIProxyInfo): void; +} + +interface nsIProtocolProxyFilter extends nsISupports { + applyFilter(aURI: nsIURI, aProxy: nsIProxyInfo, aCallback: nsIProxyProtocolFilterResult): void; +} + +interface nsIProtocolProxyChannelFilter extends nsISupports { + applyFilter(aChannel: nsIChannel, aProxy: nsIProxyInfo, aCallback: nsIProxyProtocolFilterResult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolProxyService.idl + +interface nsIProxyConfigChangedCallback extends nsISupports { + onProxyConfigChanged(): void; +} + +interface nsIProtocolProxyService extends nsISupports { + readonly RESOLVE_PREFER_SOCKS_PROXY: 2; + readonly RESOLVE_IGNORE_URI_SCHEME: 4; + readonly RESOLVE_PREFER_HTTPS_PROXY: 12; + readonly RESOLVE_ALWAYS_TUNNEL: 16; + readonly PROXYCONFIG_DIRECT: 0; + readonly PROXYCONFIG_MANUAL: 1; + readonly PROXYCONFIG_PAC: 2; + readonly PROXYCONFIG_WPAD: 4; + readonly PROXYCONFIG_SYSTEM: 5; + + asyncResolve(aChannelOrURI: nsISupports, aFlags: u32, aCallback: nsIProtocolProxyCallback, aMainThreadTarget?: nsISerialEventTarget): nsICancelable; + newProxyInfo(aType: string, aHost: string, aPort: i32, aProxyAuthorizationHeader: string, aConnectionIsolationKey: string, aFlags: u32, aFailoverTimeout: u32, aFailoverProxy: nsIProxyInfo): nsIProxyInfo; + newProxyInfoWithAuth(aType: string, aHost: string, aPort: i32, aUsername: string, aPassword: string, aProxyAuthorizationHeader: string, aConnectionIsolationKey: string, aFlags: u32, aFailoverTimeout: u32, aFailoverProxy: nsIProxyInfo): nsIProxyInfo; + getFailoverForProxy(aProxyInfo: nsIProxyInfo, aURI: nsIURI, aReason: nsresult): nsIProxyInfo; + registerFilter(aFilter: nsIProtocolProxyFilter, aPosition: u32): void; + registerChannelFilter(aFilter: nsIProtocolProxyChannelFilter, aPosition: u32): void; + unregisterFilter(aFilter: nsIProtocolProxyFilter): void; + unregisterChannelFilter(aFilter: nsIProtocolProxyChannelFilter): void; + addProxyConfigCallback(aCallback: nsIProxyConfigChangedCallback): void; + removeProxyConfigCallback(aCallback: nsIProxyConfigChangedCallback): void; + notifyProxyConfigChangedInternal(): void; + readonly proxyConfigType: u32; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProtocolProxyService2.idl + +interface nsIProtocolProxyService2 extends nsIProtocolProxyService { + reloadPAC(): void; + asyncResolve2(aChannel: nsIChannel, aFlags: u32, aCallback: nsIProtocolProxyCallback, aMainThreadTarget?: nsISerialEventTarget): nsICancelable; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProxiedChannel.idl + +interface nsIProxiedChannel extends nsISupports { + readonly proxyInfo: nsIProxyInfo; + readonly httpProxyConnectResponseCode: i32; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProxiedProtocolHandler.idl + +interface nsIProxiedProtocolHandler extends nsIProtocolHandler { + newProxiedChannel(uri: nsIURI, proxyInfo: nsIProxyInfo, proxyResolveFlags: u32, proxyURI: nsIURI, aLoadInfo: nsILoadInfo): nsIChannel; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIProxyInfo.idl + +interface nsIProxyInfo extends nsISupports { + readonly TRANSPARENT_PROXY_RESOLVES_HOST: 1; + + readonly host: string; + readonly port: i32; + readonly type: string; + readonly flags: u32; + readonly resolveFlags: u32; + readonly username: string; + readonly password: string; + readonly failoverTimeout: u32; + failoverProxy: nsIProxyInfo; + sourceId: string; + readonly proxyAuthorizationHeader: string; + readonly connectionIsolationKey: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRandomGenerator.idl + +interface nsIRandomGenerator extends nsISupports { + generateRandomBytes(aLength: u32): OutParam<u8[]>; + generateRandomBytesInto(aBuffer: u8[], aLength: u32): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRedirectChannelRegistrar.idl + +interface nsIRedirectChannelRegistrar extends nsISupports { + registerChannel(channel: nsIChannel, id: u64): void; + linkChannels(id: u64, channel: nsIParentChannel): nsIChannel; + getRegisteredChannel(id: u64): nsIChannel; + getParentChannel(id: u64): nsIParentChannel; + deregisterChannels(id: u64): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRedirectHistoryEntry.idl + +interface nsIRedirectHistoryEntry extends nsISupports { + readonly principal: nsIPrincipal; + readonly referrerURI: nsIURI; + readonly remoteAddress: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRedirectResultListener.idl + +interface nsIRedirectResultListener extends nsISupports { + onRedirectResult(status: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequest.idl + +} // global + +declare namespace nsIRequest { + +enum TRRMode { + TRR_DEFAULT_MODE = 0, + TRR_DISABLED_MODE = 1, + TRR_FIRST_MODE = 2, + TRR_ONLY_MODE = 3, +} + +} + +declare global { + +interface nsIRequest extends nsISupports, Enums<typeof nsIRequest.TRRMode> { + readonly LOAD_REQUESTMASK: 65535; + readonly LOAD_NORMAL: 0; + readonly LOAD_BACKGROUND: 1; + readonly LOAD_HTML_OBJECT_DATA: 2; + readonly LOAD_DOCUMENT_NEEDS_COOKIE: 4; + readonly LOAD_TRR_MASK: 24; + readonly LOAD_TRR_DISABLED_MODE: 8; + readonly LOAD_TRR_FIRST_MODE: 16; + readonly LOAD_TRR_ONLY_MODE: 24; + readonly LOAD_ANONYMOUS_ALLOW_CLIENT_CERT: 32; + readonly INHIBIT_CACHING: 128; + readonly INHIBIT_PERSISTENT_CACHING: 256; + readonly LOAD_BYPASS_CACHE: 512; + readonly LOAD_FROM_CACHE: 1024; + readonly VALIDATE_ALWAYS: 2048; + readonly VALIDATE_NEVER: 4096; + readonly VALIDATE_ONCE_PER_SESSION: 8192; + readonly LOAD_ANONYMOUS: 16384; + readonly LOAD_FRESH_CONNECTION: 32768; + + readonly name: string; + isPending(): boolean; + readonly status: nsresult; + cancel(aStatus: nsresult): void; + suspend(): void; + resume(): void; + loadGroup: nsILoadGroup; + loadFlags: nsLoadFlags; + getTRRMode(): nsIRequest.TRRMode; + setTRRMode(mode: nsIRequest.TRRMode): void; + cancelWithReason(aStatus: nsresult, aReason: string): void; + canceledReason: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequestContext.idl + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequestObserver.idl + +interface nsIRequestObserver extends nsISupports { + onStartRequest(aRequest: nsIRequest): void; + onStopRequest(aRequest: nsIRequest, aStatusCode: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIRequestObserverProxy.idl + +interface nsIRequestObserverProxy extends nsIRequestObserver { + init(observer: nsIRequestObserver, context: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIResumableChannel.idl + +interface nsIResumableChannel extends nsISupports { + resumeAt(startPos: u64, entityID: string): void; + readonly entityID: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISecCheckWrapChannel.idl + +interface nsISecCheckWrapChannel extends nsISupports { + readonly innerChannel: nsIChannel; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISecureBrowserUI.idl + +interface nsISecureBrowserUI extends nsISupports { + readonly state: u32; + readonly isSecureContext: boolean; + readonly secInfo: nsITransportSecurityInfo; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISensitiveInfoHiddenURI.idl + +interface nsISensitiveInfoHiddenURI extends nsISupports { + getSensitiveInfoHiddenSpec(): string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISerializationHelper.idl + +interface nsISerializationHelper extends nsISupports { + serializeToString(serializable: nsISerializable): string; + deserializeObject(input: string): nsISupports; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIServerSocket.idl + +interface nsIServerSocket extends nsISupports { + readonly LoopbackOnly: 1; + readonly KeepWhenOffline: 2; + + init(aPort: i32, aLoopbackOnly: boolean, aBackLog: i32): void; + initIPv6(aPort: i32, aLoopbackOnly: boolean, aBackLog: i32): void; + initDualStack(aPort: i32, aBackLog: i32): void; + initSpecialConnection(aPort: i32, aFlags: nsServerSocketFlag, aBackLog: i32): void; + initWithFilename(aPath: nsIFile, aPermissions: u32, aBacklog: i32): void; + initWithAbstractAddress(aName: string, aBacklog: i32): void; + close(): void; + asyncListen(aListener: nsIServerSocketListener): void; + readonly port: i32; +} + +interface nsIServerSocketListener extends nsISupports { + onSocketAccepted(aServ: nsIServerSocket, aTransport: nsISocketTransport): void; + onStopListening(aServ: nsIServerSocket, aStatus: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISimpleStreamListener.idl + +interface nsISimpleStreamListener extends nsIStreamListener { + init(aSink: nsIOutputStream, aObserver: nsIRequestObserver): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISimpleURIMutator.idl + +interface nsISimpleURIMutator extends nsISupports { + setSpecAndFilterWhitespace(aSpec: string): nsIURIMutator; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISocketFilter.idl + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISocketTransport.idl + +interface nsISocketTransport extends nsITransport { + readonly TIMEOUT_CONNECT: 0; + readonly TIMEOUT_READ_WRITE: 1; + readonly STATUS_RESOLVING: 4915203; + readonly STATUS_RESOLVED: 4915211; + readonly STATUS_CONNECTING_TO: 4915207; + readonly STATUS_CONNECTED_TO: 4915204; + readonly STATUS_SENDING_TO: 4915205; + readonly STATUS_WAITING_FOR: 4915210; + readonly STATUS_RECEIVING_FROM: 4915206; + readonly STATUS_TLS_HANDSHAKE_STARTING: 4915212; + readonly STATUS_TLS_HANDSHAKE_ENDED: 4915213; + readonly BYPASS_CACHE: 1; + readonly ANONYMOUS_CONNECT: 2; + readonly DISABLE_IPV6: 4; + readonly NO_PERMANENT_STORAGE: 8; + readonly DISABLE_IPV4: 16; + readonly DISABLE_RFC1918: 32; + readonly BE_CONSERVATIVE: 64; + readonly DISABLE_TRR: 128; + readonly REFRESH_CACHE: 256; + readonly RETRY_WITH_DIFFERENT_IP_FAMILY: 512; + readonly DONT_TRY_ECH: 1024; + readonly TRR_MODE_FLAGS: 6144; + readonly USE_IP_HINT_ADDRESS: 8192; + readonly ANONYMOUS_CONNECT_ALLOW_CLIENT_CERT: 16384; + readonly IS_RETRY: 32768; + readonly IS_SPECULATIVE_CONNECTION: 65536; + + readonly host: string; + readonly port: i32; + originAttributes: any; + getScriptablePeerAddr(): nsINetAddr; + getScriptableSelfAddr(): nsINetAddr; + readonly tlsSocketControl: nsITLSSocketControl; + securityCallbacks: nsIInterfaceRequestor; + isAlive(): boolean; + getTimeout(aType: u32): u32; + setTimeout(aType: u32, aValue: u32): void; + setLinger(aPolarity: boolean, aTimeout: i16): void; + setReuseAddrPort(reuseAddrPort: boolean): void; + connectionFlags: u32; + tlsFlags: u32; + QoSBits: u8; + recvBufferSize: u32; + sendBufferSize: u32; + keepaliveEnabled: boolean; + setKeepaliveVals(keepaliveIdleTime: i32, keepaliveRetryInterval: i32): void; + readonly resetIPFamilyPreference: boolean; + readonly echConfigUsed: boolean; + setEchConfig(echConfig: string): void; + resolvedByTRR(): boolean; + readonly effectiveTRRMode: nsIRequest.TRRMode; + readonly trrSkipReason: nsITRRSkipReason.value; + readonly retryDnsIfPossible: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISocketTransportService.idl + +type nsISTSShutdownObserver = Callable<{ + observe(): void; +}> + +interface nsISocketTransportService extends nsISupports { + createTransport(aSocketTypes: string[], aHost: string, aPort: i32, aProxyInfo: nsIProxyInfo, dnsRecord: nsIDNSRecord): nsISocketTransport; + createUnixDomainTransport(aPath: nsIFile): nsISocketTransport; + createUnixDomainAbstractAddressTransport(aName: string): nsISocketTransport; +} + +interface nsIRoutedSocketTransportService extends nsISocketTransportService { + createRoutedTransport(aSocketTypes: string[], aHost: string, aPort: i32, aHostRoute: string, aPortRoute: i32, aProxyInfo: nsIProxyInfo, aDnsRecord: nsIDNSRecord): nsISocketTransport; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISpeculativeConnect.idl + +interface nsISpeculativeConnect extends nsISupports { + speculativeConnect(aURI: nsIURI, aPrincipal: nsIPrincipal, aCallbacks: nsIInterfaceRequestor, aAnonymous: boolean): void; + speculativeConnectWithOriginAttributes(aURI: nsIURI, originAttributes: any, aCallbacks: nsIInterfaceRequestor, aAnonymous: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStandardURL.idl + +interface nsIStandardURL extends nsISupports { + readonly URLTYPE_STANDARD: 1; + readonly URLTYPE_AUTHORITY: 2; + readonly URLTYPE_NO_AUTHORITY: 3; +} + +interface nsIStandardURLMutator extends nsISupports { + init(aUrlType: u32, aDefaultPort: i32, aSpec: string, aOriginCharset: string, aBaseURI: nsIURI): nsIURIMutator; + setDefaultPort(aNewDefaultPort: i32): nsIURIMutator; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStreamListener.idl + +interface nsIStreamListener extends nsIRequestObserver { + onDataAvailable(aRequest: nsIRequest, aInputStream: nsIInputStream, aOffset: u64, aCount: u32): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStreamListenerTee.idl + +interface nsIStreamListenerTee extends nsIThreadRetargetableStreamListener { + init(listener: nsIStreamListener, sink: nsIOutputStream, requestObserver?: nsIRequestObserver): void; + initAsync(listener: nsIStreamListener, eventTarget: nsIEventTarget, sink: nsIOutputStream, requestObserver?: nsIRequestObserver): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStreamLoader.idl + +interface nsIStreamLoaderObserver extends nsISupports { + onStreamComplete(loader: nsIStreamLoader, ctxt: nsISupports, status: nsresult, resultLength: u32, result: u8[]): void; +} + +interface nsIStreamLoader extends nsIThreadRetargetableStreamListener { + init(aStreamObserver: nsIStreamLoaderObserver, aRequestObserver?: nsIRequestObserver): void; + readonly numBytesRead: u32; + readonly request: nsIRequest; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIStreamTransportService.idl + +interface nsIStreamTransportService extends nsISupports { + createInputTransport(aStream: nsIInputStream, aCloseWhenDone: boolean): nsITransport; + InputAvailable(aStream: nsIInputStream, aCallback: nsIInputAvailableCallback): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISyncStreamListener.idl + +interface nsISyncStreamListener extends nsIStreamListener { + readonly inputStream: nsIInputStream; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsISystemProxySettings.idl + +interface nsISystemProxySettings extends nsISupports { + readonly mainThreadOnly: boolean; + readonly PACURI: string; + getProxyForURI(testSpec: string, testScheme: string, testHost: string, testPort: i32): string; + readonly systemWPADSetting: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsITLSServerSocket.idl + +interface nsITLSServerSocket extends nsIServerSocket { + readonly REQUEST_NEVER: 0; + readonly REQUEST_FIRST_HANDSHAKE: 1; + readonly REQUEST_ALWAYS: 2; + readonly REQUIRE_FIRST_HANDSHAKE: 3; + readonly REQUIRE_ALWAYS: 4; + + serverCert: nsIX509Cert; + setSessionTickets(aSessionTickets: boolean): void; + setRequestClientCertificate(aRequestClientCert: u32): void; + setVersionRange(aMinVersion: u16, aMaxVersion: u16): void; +} + +interface nsITLSClientStatus extends nsISupports { + readonly SSL_VERSION_3: 768; + readonly TLS_VERSION_1: 769; + readonly TLS_VERSION_1_1: 770; + readonly TLS_VERSION_1_2: 771; + readonly TLS_VERSION_1_3: 772; + readonly TLS_VERSION_UNKNOWN: -1; + + readonly peerCert: nsIX509Cert; + readonly tlsVersionUsed: i16; + readonly cipherName: string; + readonly keyLength: u32; + readonly macLength: u32; +} + +interface nsITLSServerConnectionInfo extends nsISupports { + setSecurityObserver(observer: nsITLSServerSecurityObserver): void; + readonly serverSocket: nsITLSServerSocket; + readonly status: nsITLSClientStatus; +} + +interface nsITLSServerSecurityObserver extends nsISupports { + onHandshakeDone(aServer: nsITLSServerSocket, aStatus: nsITLSClientStatus): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIThreadRetargetableRequest.idl + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIThreadRetargetableStreamListener.idl + +interface nsIThreadRetargetableStreamListener extends nsIStreamListener { + checkListenerChain(): void; + onDataFinished(aStatusCode: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIThrottledInputChannel.idl + +interface nsIInputChannelThrottleQueue extends nsISupports { + init(aMeanBytesPerSecond: u32, aMaxBytesPerSecond: u32): void; + available(aRemaining: u32): u32; + recordRead(aBytesRead: u32): void; + bytesProcessed(): u64; + wrapStream(aInputStream: nsIInputStream): nsIAsyncInputStream; +} + +interface nsIThrottledInputChannel extends nsISupports { + throttleQueue: nsIInputChannelThrottleQueue; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsITimedChannel.idl + +interface nsIServerTiming extends nsISupports { + readonly name: string; + readonly duration: double; + readonly description: string; +} + +interface nsITimedChannel extends nsISupports { + timingEnabled: boolean; + redirectCount: u8; + internalRedirectCount: u8; + readonly channelCreationTime: PRTime; + readonly asyncOpenTime: PRTime; + readonly launchServiceWorkerStartTime: PRTime; + readonly launchServiceWorkerEndTime: PRTime; + readonly dispatchFetchEventStartTime: PRTime; + readonly dispatchFetchEventEndTime: PRTime; + readonly handleFetchEventStartTime: PRTime; + readonly handleFetchEventEndTime: PRTime; + readonly domainLookupStartTime: PRTime; + readonly domainLookupEndTime: PRTime; + readonly connectStartTime: PRTime; + readonly tcpConnectEndTime: PRTime; + readonly secureConnectionStartTime: PRTime; + readonly connectEndTime: PRTime; + readonly requestStartTime: PRTime; + readonly responseStartTime: PRTime; + readonly responseEndTime: PRTime; + readonly cacheReadStartTime: PRTime; + readonly cacheReadEndTime: PRTime; + readonly redirectStartTime: PRTime; + readonly redirectEndTime: PRTime; + readonly transactionPendingTime: PRTime; + readonly serverTiming: nsIArray; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsITraceableChannel.idl + +interface nsITraceableChannel extends nsISupports { + setNewListener(aListener: nsIStreamListener, aMustApplyContentConversion?: boolean): nsIStreamListener; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsITransport.idl + +interface nsITransport extends nsISupports { + readonly OPEN_BLOCKING: 1; + readonly OPEN_UNBUFFERED: 2; + readonly STATUS_READING: 4915208; + readonly STATUS_WRITING: 4915209; + + openInputStream(aFlags: u32, aSegmentSize: u32, aSegmentCount: u32): nsIInputStream; + openOutputStream(aFlags: u32, aSegmentSize: u32, aSegmentCount: u32): nsIOutputStream; + close(aReason: nsresult): void; + setEventSink(aSink: nsITransportEventSink, aEventTarget: nsIEventTarget): void; +} + +interface nsITransportEventSink extends nsISupports { + onTransportStatus(aTransport: nsITransport, aStatus: nsresult, aProgress: i64, aProgressMax: i64): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIUDPSocket.idl + +interface nsIUDPSocket extends nsISupports { + init(aPort: i32, aLoopbackOnly: boolean, aPrincipal: nsIPrincipal, aAddressReuse?: boolean): void; + init2(aAddr: string, aPort: i32, aPrincipal: nsIPrincipal, aAddressReuse?: boolean): void; + close(): void; + asyncListen(aListener: nsIUDPSocketListener): void; + syncListen(aListener: nsIUDPSocketSyncListener): void; + readonly localAddr: nsINetAddr; + readonly port: i32; + send(host: string, port: u16, data: u8[]): u32; + sendWithAddr(addr: nsINetAddr, data: u8[]): u32; + sendBinaryStream(host: string, port: u16, stream: nsIInputStream): void; + joinMulticast(addr: string, iface?: string): void; + leaveMulticast(addr: string, iface?: string): void; + multicastLoopback: boolean; + multicastInterface: string; +} + +interface nsIUDPSocketListener extends nsISupports { + onPacketReceived(aSocket: nsIUDPSocket, aMessage: nsIUDPMessage): void; + onStopListening(aSocket: nsIUDPSocket, aStatus: nsresult): void; +} + +interface nsIUDPMessage extends nsISupports { + readonly fromAddr: nsINetAddr; + readonly data: string; + readonly outputStream: nsIOutputStream; + readonly rawData: any; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURI.idl + +interface nsIURI extends nsISupports { + readonly spec: string; + readonly prePath: string; + readonly scheme: string; + readonly userPass: string; + readonly username: string; + readonly password: string; + readonly hostPort: string; + readonly host: string; + readonly port: i32; + readonly pathQueryRef: string; + equals(other: nsIURI): boolean; + schemeIs(scheme: string): boolean; + resolve(relativePath: string): string; + readonly asciiSpec: string; + readonly asciiHostPort: string; + readonly asciiHost: string; + readonly ref: string; + equalsExceptRef(other: nsIURI): boolean; + readonly specIgnoringRef: string; + readonly hasRef: boolean; + readonly hasUserPass: boolean; + readonly filePath: string; + readonly query: string; + readonly hasQuery: boolean; + readonly displayHost: string; + readonly displayHostPort: string; + readonly displaySpec: string; + readonly displayPrePath: string; + mutate(): nsIURIMutator; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURIMutator.idl + +interface nsIURISetSpec extends nsISupports { + setSpec(aSpec: string): nsIURIMutator; +} + +interface nsIURISetters extends nsIURISetSpec { + setScheme(aScheme: string): nsIURIMutator; + setUserPass(aUserPass: string): nsIURIMutator; + setUsername(aUsername: string): nsIURIMutator; + setPassword(aPassword: string): nsIURIMutator; + setHostPort(aHostPort: string): nsIURIMutator; + setHost(aHost: string): nsIURIMutator; + setPort(aPort: i32): nsIURIMutator; + setPathQueryRef(aPathQueryRef: string): nsIURIMutator; + setRef(aRef: string): nsIURIMutator; + setFilePath(aFilePath: string): nsIURIMutator; + setQuery(aQuery: string): nsIURIMutator; +} + +interface nsIURIMutator extends nsIURISetters { + finalize(): nsIURI; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURIWithSpecialOrigin.idl + +interface nsIURIWithSpecialOrigin extends nsISupports { + readonly origin: nsIURI; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURL.idl + +interface nsIURL extends nsIURI { + readonly directory: string; + readonly fileName: string; + readonly fileBaseName: string; + readonly fileExtension: string; + getCommonBaseSpec(aURIToCompare: nsIURI): string; + getRelativeSpec(aURIToCompare: nsIURI): string; +} + +interface nsIURLMutator extends nsISupports { + setFileName(aFileName: string): nsIURIMutator; + setFileBaseName(aFileBaseName: string): nsIURIMutator; + setFileExtension(aFileExtension: string): nsIURIMutator; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIURLParser.idl + +interface nsIURLParser extends nsISupports { + parseURL(spec: string, specLen: i32, schemePos: OutParam<u32>, schemeLen: OutParam<i32>, authorityPos: OutParam<u32>, authorityLen: OutParam<i32>, pathPos: OutParam<u32>, pathLen: OutParam<i32>): void; + parseAuthority(authority: string, authorityLen: i32, usernamePos: OutParam<u32>, usernameLen: OutParam<i32>, passwordPos: OutParam<u32>, passwordLen: OutParam<i32>, hostnamePos: OutParam<u32>, hostnameLen: OutParam<i32>, port: OutParam<i32>): void; + parseUserInfo(userinfo: string, userinfoLen: i32, usernamePos: OutParam<u32>, usernameLen: OutParam<i32>, passwordPos: OutParam<u32>, passwordLen: OutParam<i32>): void; + parseServerInfo(serverinfo: string, serverinfoLen: i32, hostnamePos: OutParam<u32>, hostnameLen: OutParam<i32>, port: OutParam<i32>): void; + parsePath(path: string, pathLen: i32, filepathPos: OutParam<u32>, filepathLen: OutParam<i32>, queryPos: OutParam<u32>, queryLen: OutParam<i32>, refPos: OutParam<u32>, refLen: OutParam<i32>): void; + parseFilePath(filepath: string, filepathLen: i32, directoryPos: OutParam<u32>, directoryLen: OutParam<i32>, basenamePos: OutParam<u32>, basenameLen: OutParam<i32>, extensionPos: OutParam<u32>, extensionLen: OutParam<i32>): void; + parseFileName(filename: string, filenameLen: i32, basenamePos: OutParam<u32>, basenameLen: OutParam<i32>, extensionPos: OutParam<u32>, extensionLen: OutParam<i32>): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIUploadChannel.idl + +interface nsIUploadChannel extends nsISupports { + setUploadStream(aStream: nsIInputStream, aContentType: string, aContentLength: i64): void; + readonly uploadStream: nsIInputStream; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsIUploadChannel2.idl + +interface nsIUploadChannel2 extends nsISupports { + explicitSetUploadStream(aStream: nsIInputStream, aContentType: string, aContentLength: i64, aMethod: string, aStreamHasHeaders: boolean): void; + readonly uploadStreamHasHeaders: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/base/nsPISocketTransportService.idl + +interface nsPISocketTransportService extends nsIRoutedSocketTransportService { + init(): void; + shutdown(aXpcomShutdown: boolean): void; + readonly sendBufferSize: i32; + offline: boolean; + readonly keepaliveIdleTime: i32; + readonly keepaliveRetryInterval: i32; + readonly keepaliveProbeCount: i32; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/about/nsIAboutModule.idl + +interface nsIAboutModule extends nsISupports { + readonly URI_SAFE_FOR_UNTRUSTED_CONTENT: 1; + readonly ALLOW_SCRIPT: 2; + readonly HIDE_FROM_ABOUTABOUT: 4; + readonly ENABLE_INDEXED_DB: 8; + readonly URI_CAN_LOAD_IN_CHILD: 16; + readonly URI_MUST_LOAD_IN_CHILD: 32; + readonly MAKE_UNLINKABLE: 64; + readonly MAKE_LINKABLE: 128; + readonly URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS: 256; + readonly URI_MUST_LOAD_IN_EXTENSION_PROCESS: 512; + readonly IS_SECURE_CHROME_UI: 1024; + + newChannel(aURI: nsIURI, aLoadInfo: nsILoadInfo): nsIChannel; + getURIFlags(aURI: nsIURI): u32; + getChromeURI(aURI: nsIURI): nsIURI; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheEntry.idl + +interface nsICacheEntry extends nsISupports { + readonly CONTENT_TYPE_UNKNOWN: 0; + readonly CONTENT_TYPE_OTHER: 1; + readonly CONTENT_TYPE_JAVASCRIPT: 2; + readonly CONTENT_TYPE_IMAGE: 3; + readonly CONTENT_TYPE_MEDIA: 4; + readonly CONTENT_TYPE_STYLESHEET: 5; + readonly CONTENT_TYPE_WASM: 6; + readonly CONTENT_TYPE_LAST: 7; + readonly NO_EXPIRATION_TIME: 4294967295; + + readonly key: string; + readonly cacheEntryId: u64; + readonly persistent: boolean; + readonly fetchCount: u32; + readonly lastFetched: u32; + readonly lastModified: u32; + readonly expirationTime: u32; + setExpirationTime(expirationTime: u32): void; + readonly onStartTime: u64; + readonly onStopTime: u64; + setNetworkTimes(onStartTime: u64, onStopTime: u64): void; + setContentType(contentType: u8): void; + forceValidFor(aSecondsToTheFuture: u32): void; + readonly isForcedValid: boolean; + markForcedValidUse(): void; + openInputStream(offset: i64): nsIInputStream; + openOutputStream(offset: i64, predictedSize: i64): nsIOutputStream; + securityInfo: nsITransportSecurityInfo; + readonly storageDataSize: u32; + asyncDoom(listener: nsICacheEntryDoomCallback): void; + getMetaDataElement(key: string): string; + setMetaDataElement(key: string, value: string): void; + visitMetaData(visitor: nsICacheEntryMetaDataVisitor): void; + metaDataReady(): void; + setValid(): void; + dismiss(): void; + readonly diskStorageSizeInKB: u32; + recreate(aMemoryOnly?: boolean): nsICacheEntry; + readonly dataSize: i64; + readonly altDataSize: i64; + readonly altDataType: string; + openAlternativeOutputStream(type: string, predictedSize: i64): nsIAsyncOutputStream; + openAlternativeInputStream(type: string): nsIInputStream; + readonly loadContextInfo: nsILoadContextInfo; + close(): void; + markValid(): void; + maybeMarkValid(): void; + hasWriteAccess(aWriteAllowed: boolean): boolean; +} + +interface nsICacheEntryMetaDataVisitor extends nsISupports { + onMetaDataElement(key: string, value: string): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheEntryDoomCallback.idl + +interface nsICacheEntryDoomCallback extends nsISupports { + onCacheEntryDoomed(aResult: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheEntryOpenCallback.idl + +interface nsICacheEntryOpenCallback extends nsISupports { + readonly ENTRY_WANTED: 0; + readonly RECHECK_AFTER_WRITE_FINISHED: 1; + readonly ENTRY_NEEDS_REVALIDATION: 2; + readonly ENTRY_NOT_WANTED: 3; + + onCacheEntryCheck(aEntry: nsICacheEntry): u32; + onCacheEntryAvailable(aEntry: nsICacheEntry, aNew: boolean, aResult: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICachePurgeLock.idl + +interface nsICachePurgeLock extends nsISupports { + lock(profileName: string): void; + isOtherInstanceRunning(): boolean; + unlock(): void; + getLockFile(profileName: string): nsIFile; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheStorage.idl + +interface nsICacheStorage extends nsISupports { + readonly OPEN_NORMALLY: 0; + readonly OPEN_TRUNCATE: 1; + readonly OPEN_READONLY: 2; + readonly OPEN_PRIORITY: 4; + readonly OPEN_BYPASS_IF_BUSY: 8; + readonly CHECK_MULTITHREADED: 16; + readonly OPEN_SECRETLY: 32; + readonly OPEN_INTERCEPTED: 64; + + asyncOpenURI(aURI: nsIURI, aIdExtension: string, aFlags: u32, aCallback: nsICacheEntryOpenCallback): void; + openTruncate(aURI: nsIURI, aIdExtension: string): nsICacheEntry; + exists(aURI: nsIURI, aIdExtension: string): boolean; + getCacheIndexEntryAttrs(aURI: nsIURI, aIdExtension: string, aHasAltData: OutParam<boolean>, aSizeInKB: OutParam<u32>): void; + asyncDoomURI(aURI: nsIURI, aIdExtension: string, aCallback: nsICacheEntryDoomCallback): void; + asyncEvictStorage(aCallback: nsICacheEntryDoomCallback): void; + asyncVisitStorage(aVisitor: nsICacheStorageVisitor, aVisitEntries: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheStorageService.idl + +interface nsICacheStorageService extends nsISupports { + readonly PURGE_DISK_DATA_ONLY: 1; + readonly PURGE_DISK_ALL: 2; + readonly PURGE_EVERYTHING: 3; + + memoryCacheStorage(aLoadContextInfo: nsILoadContextInfo): nsICacheStorage; + diskCacheStorage(aLoadContextInfo: nsILoadContextInfo): nsICacheStorage; + pinningCacheStorage(aLoadContextInfo: nsILoadContextInfo): nsICacheStorage; + clearOrigin(aPrincipal: nsIPrincipal): void; + clearBaseDomain(aBaseDomain: string): void; + clearOriginAttributes(aOriginAttributes: string): void; + clear(): void; + purgeFromMemory(aWhat: u32): void; + readonly ioTarget: nsIEventTarget; + asyncGetDiskConsumption(aObserver: nsICacheStorageConsumptionObserver): void; + asyncVisitAllStorages(aVisitor: nsICacheStorageVisitor, aVisitEntries: boolean): void; +} + +interface nsICacheStorageConsumptionObserver extends nsISupports { + onNetworkCacheDiskConsumption(aDiskSize: i64): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheStorageVisitor.idl + +interface nsICacheStorageVisitor extends nsISupports { + onCacheStorageInfo(aEntryCount: u32, aConsumption: u64, aCapacity: u64, aDiskDirectory: nsIFile): void; + onCacheEntryInfo(aURI: nsIURI, aIdEnhance: string, aDataSize: i64, aAltDataSize: i64, aFetchCount: u32, aLastModifiedTime: u32, aExpirationTime: u32, aPinned: boolean, aInfo: nsILoadContextInfo): void; + onCacheEntryVisitCompleted(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cache2/nsICacheTesting.idl + +interface nsICacheTesting extends nsISupports { + suspendCacheIOThread(aLevel: u32): void; + resumeCacheIOThread(): void; + flush(aObserver: nsIObserver): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookie.idl + +} // global + +declare namespace nsICookie { + +enum schemeType { + SCHEME_UNSET = 0, + SCHEME_HTTP = 1, + SCHEME_HTTPS = 2, + SCHEME_FILE = 4, +} + +} + +declare global { + +interface nsICookie extends nsISupports, Enums<typeof nsICookie.schemeType> { + readonly SAMESITE_NONE: 0; + readonly SAMESITE_LAX: 1; + readonly SAMESITE_STRICT: 2; + + readonly name: string; + readonly value: string; + readonly isDomain: boolean; + readonly host: string; + readonly rawHost: string; + readonly path: string; + readonly isSecure: boolean; + readonly expires: u64; + readonly expiry: i64; + readonly originAttributes: any; + readonly isSession: boolean; + readonly isHttpOnly: boolean; + readonly creationTime: i64; + readonly lastAccessed: i64; + readonly sameSite: i32; + readonly schemeMap: nsICookie.schemeType; + readonly isPartitioned: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookieJarSettings.idl + +interface nsICookieJarSettings extends nsISerializable { + readonly cookieBehavior: u32; + readonly isFirstPartyIsolated: boolean; + readonly shouldResistFingerprinting: boolean; + readonly rejectThirdPartyContexts: boolean; + readonly limitForeignContexts: boolean; + readonly blockingAllThirdPartyContexts: boolean; + readonly blockingAllContexts: boolean; + partitionForeign: boolean; + readonly isOnContentBlockingAllowList: boolean; + readonly partitionKey: string; + readonly fingerprintingRandomizationKey: u8[]; + cookiePermission(aPrincipal: nsIPrincipal): u32; + initWithURI(aURI: nsIURI, aIsPrivate: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookieManager.idl + +interface nsICookieManager extends nsISupports { + removeAll(): void; + readonly cookies: nsICookie[]; + readonly sessionCookies: nsICookie[]; + getCookieBehavior(aIsPrivate: boolean): u32; + remove(aHost: string, aName: string, aPath: string, aOriginAttributes: any): void; + add(aHost: string, aPath: string, aName: string, aValue: string, aIsSecure: boolean, aIsHttpOnly: boolean, aIsSession: boolean, aExpiry: i64, aOriginAttributes: any, aSameSite: i32, aSchemeMap: nsICookie.schemeType): void; + cookieExists(aHost: string, aPath: string, aName: string, aOriginAttributes: any): boolean; + countCookiesFromHost(aHost: string): u32; + getCookiesFromHost(aHost: string, aOriginAttributes: any): nsICookie[]; + getCookiesWithOriginAttributes(aPattern: string, aHost?: string): nsICookie[]; + removeCookiesWithOriginAttributes(aPattern: string, aHost?: string): void; + removeCookiesFromExactHost(aHost: string, aPattern: string): void; + removeAllSince(aSinceWhen: i64): Promise<any>; + getCookiesSince(aSinceWhen: i64): nsICookie[]; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookieNotification.idl + +} // global + +declare namespace nsICookieNotification { + +enum Action { + COOKIE_DELETED = 0, + COOKIE_ADDED = 1, + COOKIE_CHANGED = 2, + ALL_COOKIES_CLEARED = 3, + COOKIES_BATCH_DELETED = 4, +} + +} + +declare global { + +interface nsICookieNotification extends nsISupports, Enums<typeof nsICookieNotification.Action> { + readonly action: nsICookieNotification.Action; + readonly cookie: nsICookie; + readonly baseDomain: string; + readonly batchDeletedCookies: nsIArray; + readonly browsingContextId: u64; + readonly browsingContext: BrowsingContext; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookiePermission.idl + +interface nsICookiePermission extends nsISupports { + readonly ACCESS_DEFAULT: 0; + readonly ACCESS_ALLOW: 1; + readonly ACCESS_DENY: 2; + readonly ACCESS_SESSION: 8; +} + +// https://searchfox.org/mozilla-central/source/netwerk/cookie/nsICookieService.idl + +type nsICookieTransactionCallback = Callable<{ + callback(): void; +}> + +interface nsICookieService extends nsISupports { + readonly BEHAVIOR_ACCEPT: 0; + readonly BEHAVIOR_REJECT_FOREIGN: 1; + readonly BEHAVIOR_REJECT: 2; + readonly BEHAVIOR_LIMIT_FOREIGN: 3; + readonly BEHAVIOR_REJECT_TRACKER: 4; + readonly BEHAVIOR_REJECT_TRACKER_AND_PARTITION_FOREIGN: 5; + readonly BEHAVIOR_LAST: 5; + + getCookieStringFromDocument(aDocument: Document): string; + getCookieStringFromHttp(aURI: nsIURI, aChannel: nsIChannel): string; + setCookieStringFromDocument(aDocument: Document, aCookie: string): void; + setCookieStringFromHttp(aURI: nsIURI, aCookie: string, aChannel: nsIChannel): void; + runInTransaction(aCallback: nsICookieTransactionCallback): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSAdditionalInfo.idl + +interface nsIDNSAdditionalInfo extends nsISupports { + readonly port: i32; + readonly resolverURL: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSByTypeRecord.idl + +interface nsIDNSByTypeRecord extends nsIDNSRecord { + readonly type: u32; +} + +interface nsIDNSTXTRecord extends nsISupports { + getRecordsAsOneString(): string; +} + +interface nsISVCParam extends nsISupports { + readonly type: u16; +} + +interface nsISVCParamAlpn extends nsISupports { + readonly alpn: string[]; +} + +interface nsISVCParamNoDefaultAlpn extends nsISupports { +} + +interface nsISVCParamPort extends nsISupports { + readonly port: u16; +} + +interface nsISVCParamIPv4Hint extends nsISupports { + readonly ipv4Hint: nsINetAddr[]; +} + +interface nsISVCParamEchConfig extends nsISupports { + readonly echconfig: string; +} + +interface nsISVCParamIPv6Hint extends nsISupports { + readonly ipv6Hint: nsINetAddr[]; +} + +interface nsISVCParamODoHConfig extends nsISupports { + readonly ODoHConfig: string; +} + +interface nsISVCBRecord extends nsISupports { + readonly priority: u16; + readonly name: string; + readonly selectedAlpn: string; + readonly echConfig: string; + readonly ODoHConfig: string; + readonly hasIPHintAddress: boolean; + readonly values: nsISVCParam[]; +} + +interface nsIDNSHTTPSSVCRecord extends nsISupports { + readonly records: nsISVCBRecord[]; + GetServiceModeRecord(aNoHttp2: boolean, aNoHttp3: boolean): nsISVCBRecord; + readonly hasIPAddresses: boolean; + readonly allRecordsExcluded: boolean; + readonly ttl: u32; + GetAllRecordsWithEchConfig(aNoHttp2: boolean, aNoHttp3: boolean, aAllRecordsHaveEchConfig: OutParam<boolean>, aAllRecordsInH3ExcludedList: OutParam<boolean>): nsISVCBRecord[]; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSListener.idl + +interface nsIDNSListener extends nsISupports { + onLookupComplete(aRequest: nsICancelable, aRecord: nsIDNSRecord, aStatus: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSRecord.idl + +interface nsIDNSRecord extends nsISupports { +} + +interface nsIDNSAddrRecord extends nsIDNSRecord { + readonly canonicalName: string; + getScriptableNextAddr(aPort: u16): nsINetAddr; + getNextAddrAsString(): string; + hasMore(): boolean; + rewind(): void; + reportUnusable(aPort: u16): void; + IsTRR(): boolean; + resolvedInSocketProcess(): boolean; + readonly trrFetchDuration: double; + readonly trrFetchDurationNetworkOnly: double; + readonly effectiveTRRMode: nsIRequest.TRRMode; + readonly trrSkipReason: nsITRRSkipReason.value; + readonly ttl: u32; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIDNSService.idl + +} // global + +declare namespace nsIDNSService { + +enum ResolveType { + RESOLVE_TYPE_DEFAULT = 0, + RESOLVE_TYPE_TXT = 16, + RESOLVE_TYPE_HTTPSSVC = 65, +} + +enum ResolverMode { + MODE_NATIVEONLY = 0, + MODE_RESERVED1 = 1, + MODE_TRRFIRST = 2, + MODE_TRRONLY = 3, + MODE_RESERVED4 = 4, + MODE_TRROFF = 5, +} + +enum DNSFlags { + RESOLVE_DEFAULT_FLAGS = 0, + RESOLVE_BYPASS_CACHE = 1, + RESOLVE_CANONICAL_NAME = 2, + RESOLVE_PRIORITY_MEDIUM = 4, + RESOLVE_PRIORITY_LOW = 8, + RESOLVE_SPECULATE = 16, + RESOLVE_DISABLE_IPV6 = 32, + RESOLVE_OFFLINE = 64, + RESOLVE_DISABLE_IPV4 = 128, + RESOLVE_ALLOW_NAME_COLLISION = 256, + RESOLVE_DISABLE_TRR = 512, + RESOLVE_REFRESH_CACHE = 1024, + RESOLVE_TRR_MODE_MASK = 6144, + RESOLVE_TRR_DISABLED_MODE = 2048, + RESOLVE_IGNORE_SOCKS_DNS = 8192, + RESOLVE_IP_HINT = 16384, + RESOLVE_WANT_RECORD_ON_ERROR = 65536, + ALL_DNSFLAGS_BITS = 131071, +} + +enum ConfirmationState { + CONFIRM_OFF = 0, + CONFIRM_TRYING_OK = 1, + CONFIRM_OK = 2, + CONFIRM_FAILED = 3, + CONFIRM_TRYING_FAILED = 4, + CONFIRM_DISABLED = 5, +} + +} + +declare global { + +interface nsIDNSService extends nsISupports, Enums<typeof nsIDNSService.ResolveType & typeof nsIDNSService.ResolverMode & typeof nsIDNSService.DNSFlags & typeof nsIDNSService.ConfirmationState> { + asyncResolve(aHostName: string, aType: nsIDNSService.ResolveType, aFlags: nsIDNSService.DNSFlags, aInfo: nsIDNSAdditionalInfo, aListener: nsIDNSListener, aListenerTarget: nsIEventTarget, aOriginAttributes?: any): nsICancelable; + newAdditionalInfo(aTrrURL: string, aPort: i32): nsIDNSAdditionalInfo; + cancelAsyncResolve(aHostName: string, aType: nsIDNSService.ResolveType, aFlags: nsIDNSService.DNSFlags, aResolver: nsIDNSAdditionalInfo, aListener: nsIDNSListener, aReason: nsresult, aOriginAttributes?: any): void; + resolve(aHostName: string, aFlags: nsIDNSService.DNSFlags, aOriginAttributes?: any): nsIDNSRecord; + clearCache(aTrrToo: boolean): void; + reloadParentalControlEnabled(): void; + setDetectedTrrURI(aURI: string): void; + setHeuristicDetectionResult(value: nsITRRSkipReason.value): void; + readonly heuristicDetectionResult: nsITRRSkipReason.value; + getTRRSkipReasonName(value: nsITRRSkipReason.value): string; + readonly lastConfirmationStatus: nsresult; + readonly lastConfirmationSkipReason: nsITRRSkipReason.value; + readonly currentTrrURI: string; + readonly currentTrrMode: nsIDNSService.ResolverMode; + readonly currentTrrConfirmationState: u32; + readonly myHostName: string; + readonly trrDomain: string; + readonly TRRDomainKey: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIEffectiveTLDService.idl + +interface nsIEffectiveTLDService extends nsISupports { + getPublicSuffix(aURI: nsIURI): string; + getKnownPublicSuffix(aURI: nsIURI): string; + getBaseDomain(aURI: nsIURI, aAdditionalParts?: u32): string; + getSchemelessSite(aURI: nsIURI): string; + getSite(aURI: nsIURI): string; + getPublicSuffixFromHost(aHost: string): string; + getKnownPublicSuffixFromHost(aHost: string): string; + getBaseDomainFromHost(aHost: string, aAdditionalParts?: u32): string; + getNextSubDomain(aHost: string): string; + hasRootDomain(aInput: string, aHost: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsIIDNService.idl + +interface nsIIDNService extends nsISupports { + convertUTF8toACE(input: string): string; + convertACEtoUTF8(input: string): string; + isACE(input: string): boolean; + convertToDisplayIDN(input: string, isASCII: OutParam<boolean>): string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsINativeDNSResolverOverride.idl + +interface nsINativeDNSResolverOverride extends nsISupports { + addIPOverride(aHost: string, aIPLiteral: string): void; + addHTTPSRecordOverride(aHost: string, aData: u8[], aLength: u32): void; + setCnameOverride(aHost: string, aCNAME: string): void; + clearHostOverride(aHost: string): void; + clearOverrides(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsITRRSkipReason.idl + +} // global + +declare namespace nsITRRSkipReason { + +enum value { + TRR_UNSET = 0, + TRR_OK = 1, + TRR_NO_GSERVICE = 2, + TRR_PARENTAL_CONTROL = 3, + TRR_OFF_EXPLICIT = 4, + TRR_REQ_MODE_DISABLED = 5, + TRR_MODE_NOT_ENABLED = 6, + TRR_FAILED = 7, + TRR_MODE_UNHANDLED_DEFAULT = 8, + TRR_MODE_UNHANDLED_DISABLED = 9, + TRR_DISABLED_FLAG = 10, + TRR_TIMEOUT = 11, + TRR_CHANNEL_DNS_FAIL = 12, + TRR_IS_OFFLINE = 13, + TRR_NOT_CONFIRMED = 14, + TRR_DID_NOT_MAKE_QUERY = 15, + TRR_UNKNOWN_CHANNEL_FAILURE = 16, + TRR_HOST_BLOCKED_TEMPORARY = 17, + TRR_SEND_FAILED = 18, + TRR_NET_RESET = 19, + TRR_NET_TIMEOUT = 20, + TRR_NET_REFUSED = 21, + TRR_NET_INTERRUPT = 22, + TRR_NET_INADEQ_SEQURITY = 23, + TRR_NO_ANSWERS = 24, + TRR_DECODE_FAILED = 25, + TRR_EXCLUDED = 26, + TRR_SERVER_RESPONSE_ERR = 27, + TRR_RCODE_FAIL = 28, + TRR_NO_CONNECTIVITY = 29, + TRR_NXDOMAIN = 30, + TRR_REQ_CANCELLED = 31, + ODOH_KEY_NOT_USABLE = 32, + ODOH_UPDATE_KEY_FAILED = 33, + ODOH_KEY_NOT_AVAILABLE = 34, + ODOH_ENCRYPTION_FAILED = 35, + ODOH_DECRYPTION_FAILED = 36, + TRR_HEURISTIC_TRIPPED_GOOGLE_SAFESEARCH = 37, + TRR_HEURISTIC_TRIPPED_YOUTUBE_SAFESEARCH = 38, + TRR_HEURISTIC_TRIPPED_ZSCALER_CANARY = 39, + TRR_HEURISTIC_TRIPPED_CANARY = 40, + TRR_HEURISTIC_TRIPPED_MODIFIED_ROOTS = 41, + TRR_HEURISTIC_TRIPPED_PARENTAL_CONTROLS = 42, + TRR_HEURISTIC_TRIPPED_THIRD_PARTY_ROOTS = 43, + TRR_HEURISTIC_TRIPPED_ENTERPRISE_POLICY = 44, + TRR_HEURISTIC_TRIPPED_VPN = 45, + TRR_HEURISTIC_TRIPPED_PROXY = 46, + TRR_HEURISTIC_TRIPPED_NRPT = 47, + TRR_BAD_URL = 48, +} + +} + +declare global { + +interface nsITRRSkipReason extends nsISupports, Enums<typeof nsITRRSkipReason.value> { +} + +// https://searchfox.org/mozilla-central/source/netwerk/dns/nsPIDNSService.idl + +interface nsPIDNSService extends nsIDNSService { + init(): void; + shutdown(): void; + prefetchEnabled: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/file/nsIFileChannel.idl + +interface nsIFileChannel extends nsISupports { + readonly file: nsIFile; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/file/nsIFileProtocolHandler.idl + +interface nsIFileProtocolHandler extends nsIProtocolHandler { + newFileURI(aFile: nsIFile): nsIURI; + newFileURIMutator(file: nsIFile): nsIURIMutator; + getURLSpecFromActualFile(file: nsIFile): string; + getURLSpecFromDir(file: nsIFile): string; + getFileFromURLSpec(url: string): nsIFile; + readURLFile(file: nsIFile): nsIURI; + readShellLink(file: nsIFile): nsIURI; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIBackgroundChannelRegistrar.idl + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIBinaryHttp.idl + +interface nsIBinaryHttpRequest extends nsISupports { + readonly method: string; + readonly scheme: string; + readonly authority: string; + readonly path: string; + readonly headerNames: string[]; + readonly headerValues: string[]; + readonly content: u8[]; +} + +interface nsIBinaryHttpResponse extends nsISupports { + readonly status: u16; + readonly headerNames: string[]; + readonly headerValues: string[]; + readonly content: u8[]; +} + +interface nsIBinaryHttp extends nsISupports { + encodeRequest(request: nsIBinaryHttpRequest): u8[]; + decodeRequest(request: u8[]): nsIBinaryHttpRequest; + decodeResponse(response: u8[]): nsIBinaryHttpResponse; + encodeResponse(response: nsIBinaryHttpResponse): u8[]; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIEarlyHintObserver.idl + +interface nsIEarlyHintObserver extends nsISupports { + earlyHint(linkHeader: string, referrerPolicy: string, cspHeader: string): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpActivityObserver.idl + +interface nsIHttpActivityObserver extends nsISupports { + readonly ACTIVITY_TYPE_SOCKET_TRANSPORT: 1; + readonly ACTIVITY_TYPE_HTTP_TRANSACTION: 2; + readonly ACTIVITY_TYPE_HTTP_CONNECTION: 3; + readonly ACTIVITY_SUBTYPE_REQUEST_HEADER: 20481; + readonly ACTIVITY_SUBTYPE_REQUEST_BODY_SENT: 20482; + readonly ACTIVITY_SUBTYPE_RESPONSE_START: 20483; + readonly ACTIVITY_SUBTYPE_RESPONSE_HEADER: 20484; + readonly ACTIVITY_SUBTYPE_RESPONSE_COMPLETE: 20485; + readonly ACTIVITY_SUBTYPE_TRANSACTION_CLOSE: 20486; + readonly ACTIVITY_SUBTYPE_PROXY_RESPONSE_HEADER: 20487; + readonly ACTIVITY_SUBTYPE_DNSANDSOCKET_CREATED: 20488; + readonly ACTIVITY_SUBTYPE_SPECULATIVE_DNSANDSOCKET_CREATED: 20489; + readonly ACTIVITY_SUBTYPE_ECH_SET: 20490; + readonly ACTIVITY_SUBTYPE_CONNECTION_CREATED: 20491; + + observeActivity(aHttpChannel: nsISupports, aActivityType: u32, aActivitySubtype: u32, aTimestamp: PRTime, aExtraSizeData: u64, aExtraStringData: string): void; + readonly isActive: boolean; + observeConnectionActivity(aHost: string, aPort: i32, aSSL: boolean, aHasECH: boolean, aIsHttp3: boolean, aActivityType: u32, aActivitySubtype: u32, aTimestamp: PRTime, aExtraStringData: string): void; +} + +interface nsIHttpActivityDistributor extends nsIHttpActivityObserver { + addObserver(aObserver: nsIHttpActivityObserver): void; + removeObserver(aObserver: nsIHttpActivityObserver): void; + observeProxyResponse: boolean; + observeConnection: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpAuthManager.idl + +interface nsIHttpAuthManager extends nsISupports { + getAuthIdentity(aScheme: string, aHost: string, aPort: i32, aAuthType: string, aRealm: string, aPath: string, aUserDomain: OutParam<string>, aUserName: OutParam<string>, aUserPassword: OutParam<string>, aIsPrivate?: boolean, aPrincipal?: nsIPrincipal): void; + setAuthIdentity(aScheme: string, aHost: string, aPort: i32, aAuthType: string, aRealm: string, aPath: string, aUserDomain: string, aUserName: string, aUserPassword: string, aIsPrivate?: boolean, aPrincipal?: nsIPrincipal): void; + clearAll(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpAuthenticableChannel.idl + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpAuthenticator.idl + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpChannel.idl + +interface nsIHttpChannel extends nsIIdentChannel { + requestMethod: string; + referrerInfo: nsIReferrerInfo; + readonly protocolVersion: string; + readonly transferSize: u64; + readonly requestSize: u64; + readonly decodedBodySize: u64; + readonly encodedBodySize: u64; + getRequestHeader(aHeader: string): string; + setRequestHeader(aHeader: string, aValue: string, aMerge: boolean): void; + setNewReferrerInfo(aUrl: string, aPolicy: nsIReferrerInfo.ReferrerPolicyIDL, aSendReferrer: boolean): void; + setEmptyRequestHeader(aHeader: string): void; + visitRequestHeaders(aVisitor: nsIHttpHeaderVisitor): void; + visitNonDefaultRequestHeaders(aVisitor: nsIHttpHeaderVisitor): void; + ShouldStripRequestBodyHeader(aMethod: string): boolean; + allowSTS: boolean; + redirectionLimit: u32; + readonly responseStatus: u32; + readonly responseStatusText: string; + readonly requestSucceeded: boolean; + isMainDocumentChannel: boolean; + getResponseHeader(header: string): string; + setResponseHeader(header: string, value: string, merge: boolean): void; + visitResponseHeaders(aVisitor: nsIHttpHeaderVisitor): void; + getOriginalResponseHeader(aHeader: string, aVisitor: nsIHttpHeaderVisitor): void; + visitOriginalResponseHeaders(aVisitor: nsIHttpHeaderVisitor): void; + isNoStoreResponse(): boolean; + isNoCacheResponse(): boolean; + isPrivateResponse(): boolean; + redirectTo(aTargetURI: nsIURI): void; + upgradeToSecure(): void; + topLevelContentWindowId: u64; + browserId: u64; + logBlockedCORSRequest(aMessage: string, aCategory: string, aIsWarning: boolean): void; + logMimeTypeMismatch(aMessageName: string, aWarning: boolean, aURL: string, aContentType: string): void; + classicScriptHintCharset: string; + documentCharacterSet: string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpChannelAuthProvider.idl + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpChannelChild.idl + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpChannelInternal.idl + +interface nsIHttpUpgradeListener extends nsISupports { + onTransportAvailable(aTransport: nsISocketTransport, aSocketIn: nsIAsyncInputStream, aSocketOut: nsIAsyncOutputStream): void; + onUpgradeFailed(aErrorCode: nsresult): void; +} + +interface nsIHttpChannelInternal extends nsISupports { + readonly THIRD_PARTY_FORCE_ALLOW: 1; + readonly REDIRECT_MODE_FOLLOW: 0; + readonly REDIRECT_MODE_ERROR: 1; + readonly REDIRECT_MODE_MANUAL: 2; + readonly FETCH_CACHE_MODE_DEFAULT: 0; + readonly FETCH_CACHE_MODE_NO_STORE: 1; + readonly FETCH_CACHE_MODE_RELOAD: 2; + readonly FETCH_CACHE_MODE_NO_CACHE: 3; + readonly FETCH_CACHE_MODE_FORCE_CACHE: 4; + readonly FETCH_CACHE_MODE_ONLY_IF_CACHED: 5; + + documentURI: nsIURI; + getRequestVersion(major: OutParam<u32>, minor: OutParam<u32>): void; + getResponseVersion(major: OutParam<u32>, minor: OutParam<u32>): void; + setCookie(aCookieHeader: string): void; + thirdPartyFlags: u32; + forceAllowThirdPartyCookie: boolean; + channelIsForDownload: boolean; + readonly localAddress: string; + readonly localPort: i32; + readonly remoteAddress: string; + readonly remotePort: i32; + HTTPUpgrade(aProtocolName: string, aListener: nsIHttpUpgradeListener): void; + setConnectOnly(): void; + readonly onlyConnect: boolean; + allowSpdy: boolean; + allowHttp3: boolean; + responseTimeoutEnabled: boolean; + initialRwin: u32; + readonly apiRedirectToURI: nsIURI; + allowAltSvc: boolean; + beConservative: boolean; + bypassProxy: boolean; + readonly isResolvedByTRR: boolean; + readonly effectiveTRRMode: nsIRequest.TRRMode; + readonly trrSkipReason: nsITRRSkipReason.value; + readonly isLoadedBySocketProcess: boolean; + isOCSP: boolean; + tlsFlags: u32; + readonly lastModifiedTime: PRTime; + corsIncludeCredentials: boolean; + redirectMode: u32; + fetchCacheMode: u32; + readonly topWindowURI: nsIURI; + setTopWindowURIIfUnknown(topWindowURI: nsIURI): void; + readonly proxyURI: nsIURI; + blockAuthPrompt: boolean; + integrityMetadata: string; + readonly connectionInfoHashKey: string; + setIPv4Disabled(): void; + setIPv6Disabled(): void; + readonly crossOriginOpenerPolicy: nsILoadInfo.CrossOriginOpenerPolicy; + setWaitForHTTPSSVCRecord(): void; + readonly supportsHTTP3: boolean; + readonly hasHTTPSRR: boolean; + setEarlyHintObserver(aObserver: nsIEarlyHintObserver): void; + earlyHintPreloaderId: u64; + readonly isProxyUsed: boolean; + setWebTransportSessionEventListener(aListener: WebTransportSessionEventListener): void; + earlyHintLinkType: u32; + isUserAgentHeaderModified: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpHeaderVisitor.idl + +type nsIHttpHeaderVisitor = Callable<{ + visitHeader(aHeader: string, aValue: string): void; +}> + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIHttpProtocolHandler.idl + +interface nsIHttpProtocolHandler extends nsIProxiedProtocolHandler { + readonly userAgent: string; + readonly rfpUserAgent: string; + readonly appName: string; + readonly appVersion: string; + readonly platform: string; + readonly oscpu: string; + readonly misc: string; + readonly altSvcCacheKeys: string[]; + readonly authCacheKeys: string[]; + EnsureHSTSDataReady(): Promise<any>; + clearCORSPreflightCache(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIObliviousHttp.idl + +interface nsIObliviousHttpClientResponse extends nsISupports { + decapsulate(encResponse: u8[]): u8[]; +} + +interface nsIObliviousHttpClientRequest extends nsISupports { + readonly encRequest: u8[]; + readonly response: nsIObliviousHttpClientResponse; +} + +interface nsIObliviousHttpServerResponse extends nsISupports { + readonly request: u8[]; + encapsulate(response: u8[]): u8[]; +} + +interface nsIObliviousHttpServer extends nsISupports { + readonly encodedConfig: u8[]; + decapsulate(encRequest: u8[]): nsIObliviousHttpServerResponse; +} + +interface nsIObliviousHttp extends nsISupports { + encapsulateRequest(encodedConfig: u8[], request: u8[]): nsIObliviousHttpClientRequest; + server(): nsIObliviousHttpServer; +} + +interface nsIObliviousHttpService extends nsISupports { + newChannel(relayURI: nsIURI, targetURI: nsIURI, encodedConfig: u8[]): nsIChannel; + getTRRSettings(relayURI: OutParam<nsIURI>, encodedConfig: OutParam<u8[]>): void; + clearTRRConfig(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIObliviousHttpChannel.idl + +interface nsIObliviousHttpChannel extends nsIHttpChannel { + readonly relayChannel: nsIHttpChannel; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIRaceCacheWithNetwork.idl + +interface nsIRaceCacheWithNetwork extends nsISupports { + test_triggerNetwork(timeout: i32): void; + test_delayCacheEntryOpeningBy(timeout: i32): void; + test_triggerDelayedOpenCacheEntry(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsITlsHandshakeListener.idl + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/http/nsIWellKnownOpportunisticUtils.idl + +interface nsIWellKnownOpportunisticUtils extends nsISupports { + verify(aJSON: string, aOrigin: string): void; + readonly valid: boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/streamconv/converters/nsICompressConvStats.idl + +interface nsICompressConvStats extends nsISupports { + readonly decodedDataLength: u64; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/res/nsIResProtocolHandler.idl + +interface nsIResProtocolHandler extends nsISubstitutingProtocolHandler { + allowContentToAccess(url: nsIURI): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/res/nsISubstitutingProtocolHandler.idl + +interface nsISubstitutingProtocolHandler extends nsIProtocolHandler { + readonly ALLOW_CONTENT_ACCESS: 1; + readonly RESOLVE_JAR_URI: 2; + + setSubstitution(root: string, baseURI: nsIURI): void; + setSubstitutionWithFlags(root: string, baseURI: nsIURI, flags: u32): void; + getSubstitution(root: string): nsIURI; + hasSubstitution(root: string): boolean; + resolveURI(resURI: nsIURI): string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/socket/nsINamedPipeService.idl + +interface nsINamedPipeDataObserver extends nsISupports { +} + +interface nsINamedPipeService extends nsISupports { + isOnCurrentThread(): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/socket/nsISocketProvider.idl + +interface nsISocketProvider extends nsISupports { + readonly PROXY_RESOLVES_HOST: 1; + readonly ANONYMOUS_CONNECT: 2; + readonly NO_PERMANENT_STORAGE: 4; + readonly BE_CONSERVATIVE: 8; + readonly ANONYMOUS_CONNECT_ALLOW_CLIENT_CERT: 16; + readonly IS_SPECULATIVE_CONNECTION: 32; + readonly DONT_TRY_ECH: 1024; + readonly IS_RETRY: 2048; + readonly USED_PRIVATE_DNS: 4096; +} + +// https://searchfox.org/mozilla-central/source/netwerk/socket/nsISocketProviderService.idl + +interface nsISocketProviderService extends nsISupports { + getSocketProvider(socketType: string): nsISocketProvider; +} + +// https://searchfox.org/mozilla-central/source/netwerk/streamconv/mozITXTToHTMLConv.idl + +interface mozITXTToHTMLConv extends nsIStreamConverter { + readonly kEntities: 0; + readonly kURLs: 2; + readonly kGlyphSubstitution: 4; + readonly kStructPhrase: 8; + + scanTXT(text: string, whattodo: u32): string; + scanHTML(text: string, whattodo: u32): string; + citeLevelTXT(line: string, logLineStart: OutParam<u32>): u32; + findURLInPlaintext(text: string, aLength: i32, aPos: i32, aStartPos: OutParam<i32>, aEndPos: OutParam<i32>): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsIDirIndex.idl + +interface nsIDirIndex extends nsISupports { + readonly TYPE_UNKNOWN: 0; + readonly TYPE_DIRECTORY: 1; + readonly TYPE_FILE: 2; + readonly TYPE_SYMLINK: 3; + + type: u32; + location: string; + size: i64; + lastModified: PRTime; +} + +// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsIDirIndexListener.idl + +interface nsIDirIndexListener extends nsISupports { + onIndexAvailable(aRequest: nsIRequest, aIndex: nsIDirIndex): void; +} + +interface nsIDirIndexParser extends nsIStreamListener { + listener: nsIDirIndexListener; +} + +// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsIStreamConverter.idl + +interface nsIStreamConverter extends nsIThreadRetargetableStreamListener { + convert(aFromStream: nsIInputStream, aFromType: string, aToType: string, aCtxt: nsISupports): nsIInputStream; + asyncConvertData(aFromType: string, aToType: string, aListener: nsIStreamListener, aCtxt: nsISupports): void; + getConvertedType(aFromType: string, aChannel: nsIChannel): string; +} + +// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsIStreamConverterService.idl + +interface nsIStreamConverterService extends nsISupports { + canConvert(aFromType: string, aToType: string): boolean; + convertedType(aFromType: string, aChannel: nsIChannel): string; + convert(aFromStream: nsIInputStream, aFromType: string, aToType: string, aContext: nsISupports): nsIInputStream; + asyncConvertData(aFromType: string, aToType: string, aListener: nsIStreamListener, aContext: nsISupports): nsIStreamListener; +} + +// https://searchfox.org/mozilla-central/source/netwerk/streamconv/nsITXTToHTMLConv.idl + +interface nsITXTToHTMLConv extends nsIStreamConverter { + setTitle(text: string): void; + preFormatHTML(value: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/viewsource/nsIViewSourceChannel.idl + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsITransportProvider.idl + +interface nsITransportProvider extends nsISupports { + setListener(listener: nsIHttpUpgradeListener): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsIWebSocketChannel.idl + +interface nsIWebSocketChannel extends nsISupports { + readonly CLOSE_NORMAL: 1000; + readonly CLOSE_GOING_AWAY: 1001; + readonly CLOSE_PROTOCOL_ERROR: 1002; + readonly CLOSE_UNSUPPORTED_DATATYPE: 1003; + readonly CLOSE_NO_STATUS: 1005; + readonly CLOSE_ABNORMAL: 1006; + readonly CLOSE_INVALID_PAYLOAD: 1007; + readonly CLOSE_POLICY_VIOLATION: 1008; + readonly CLOSE_TOO_LARGE: 1009; + readonly CLOSE_EXTENSION_MISSING: 1010; + readonly CLOSE_INTERNAL_ERROR: 1011; + readonly CLOSE_TLS_FAILED: 1015; + + readonly originalURI: nsIURI; + readonly URI: nsIURI; + notificationCallbacks: nsIInterfaceRequestor; + readonly securityInfo: nsITransportSecurityInfo; + loadGroup: nsILoadGroup; + loadInfo: nsILoadInfo; + protocol: string; + readonly extensions: string; + readonly httpChannelId: u64; + initLoadInfo(aLoadingNode: Node, aLoadingPrincipal: nsIPrincipal, aTriggeringPrincipal: nsIPrincipal, aSecurityFlags: u32, aContentPolicyType: nsContentPolicyType): void; + asyncOpen(aURI: nsIURI, aOrigin: string, aOriginAttributes: any, aInnerWindowID: u64, aListener: nsIWebSocketListener, aContext: nsISupports): void; + close(aCode: u16, aReason: string): void; + sendMsg(aMsg: string): void; + sendBinaryMsg(aMsg: string): void; + sendBinaryStream(aStream: nsIInputStream, length: u32): void; + pingInterval: u32; + pingTimeout: u32; + serial: u32; + setServerParameters(aProvider: nsITransportProvider, aNegotiatedExtensions: string): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsIWebSocketEventService.idl + +interface nsIWebSocketFrame extends nsISupports { + readonly OPCODE_CONTINUATION: 0; + readonly OPCODE_TEXT: 1; + readonly OPCODE_BINARY: 2; + readonly OPCODE_CLOSE: 8; + readonly OPCODE_PING: 9; + readonly OPCODE_PONG: 10; + + readonly timeStamp: DOMHighResTimeStamp; + readonly finBit: boolean; + readonly rsvBit1: boolean; + readonly rsvBit2: boolean; + readonly rsvBit3: boolean; + readonly opCode: u16; + readonly maskBit: boolean; + readonly mask: u32; + readonly payload: string; +} + +interface nsIWebSocketEventListener extends nsISupports { + readonly TYPE_STRING: 0; + readonly TYPE_BLOB: 1; + readonly TYPE_ARRAYBUFFER: 2; + + webSocketCreated(aWebSocketSerialID: u32, aURI: string, aProtocols: string): void; + webSocketOpened(aWebSocketSerialID: u32, aEffectiveURI: string, aProtocols: string, aExtensions: string, aHttpChannelId: u64): void; + webSocketMessageAvailable(aWebSocketSerialID: u32, aMessage: string, aType: u16): void; + webSocketClosed(aWebSocketSerialID: u32, aWasClean: boolean, aCode: u16, aReason: string): void; + frameReceived(aWebSocketSerialID: u32, aFrame: nsIWebSocketFrame): void; + frameSent(aWebSocketSerialID: u32, aFrame: nsIWebSocketFrame): void; +} + +interface nsIWebSocketEventService extends nsISupports { + sendMessage(aWebSocketSerialID: u32, aMessage: string): void; + addListener(aInnerWindowID: u64, aListener: nsIWebSocketEventListener): void; + removeListener(aInnerWindowID: u64, aListener: nsIWebSocketEventListener): void; + hasListenerFor(aInnerWindowID: u64): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsIWebSocketImpl.idl + +interface nsIWebSocketImpl extends nsISupports { + sendMessage(aMessage: string): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/websocket/nsIWebSocketListener.idl + +interface nsIWebSocketListener extends nsISupports { + onStart(aContext: nsISupports): void; + onStop(aContext: nsISupports, aStatusCode: nsresult): void; + onMessageAvailable(aContext: nsISupports, aMsg: string): void; + onBinaryMessageAvailable(aContext: nsISupports, aMsg: string): void; + onAcknowledge(aContext: nsISupports, aSize: u32): void; + onServerClose(aContext: nsISupports, aCode: u16, aReason: string): void; + OnError(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/webtransport/nsIWebTransport.idl + +} // global + +declare namespace nsIWebTransport { + +enum WebTransportError { + UNKNOWN_ERROR = 0, + INVALID_STATE_ERROR = 1, +} + +} + +declare global { + +interface nsIWebTransport extends nsISupports, Enums<typeof nsIWebTransport.WebTransportError> { + asyncConnect(aURI: nsIURI, aDedicated: boolean, aServerCertHashes: nsIWebTransportHash[], aLoadingPrincipal: nsIPrincipal, aSecurityFlags: u32, aListener: WebTransportSessionEventListener): void; + getStats(): void; + closeSession(aErrorCode: u32, aReason: string): void; + createOutgoingBidirectionalStream(aListener: nsIWebTransportStreamCallback): void; + createOutgoingUnidirectionalStream(aListener: nsIWebTransportStreamCallback): void; + sendDatagram(aData: u8[], aTrackingId: u64): void; + getMaxDatagramSize(): void; +} + +} // global + +declare namespace WebTransportSessionEventListener { + +enum DatagramOutcome { + UNKNOWN = 0, + DROPPED_TOO_MUCH_DATA = 1, + SENT = 2, +} + +} + +declare global { + +interface WebTransportSessionEventListener extends nsISupports, Enums<typeof WebTransportSessionEventListener.DatagramOutcome> { + onSessionReady(aSessionId: u64): void; + onSessionClosed(aCleanly: boolean, aErrorCode: u32, aReason: string): void; + onIncomingBidirectionalStreamAvailable(aStream: nsIWebTransportBidirectionalStream): void; + onIncomingUnidirectionalStreamAvailable(aStream: nsIWebTransportReceiveStream): void; + onStopSending(aStreamId: u64, aError: nsresult): void; + onResetReceived(aStreamId: u64, aError: nsresult): void; + onDatagramReceived(aData: u8[]): void; + onMaxDatagramSize(aSize: u64): void; + onOutgoingDatagramOutCome(aId: u64, aOutCome: WebTransportSessionEventListener.DatagramOutcome): void; +} + +interface nsIWebTransportStreamCallback extends nsISupports { + onBidirectionalStreamReady(aStream: nsIWebTransportBidirectionalStream): void; + onUnidirectionalStreamReady(aStream: nsIWebTransportSendStream): void; + onError(aError: u8): void; +} + +interface nsIWebTransportHash extends nsISupports { + readonly algorithm: string; + readonly value: u8[]; +} + +// https://searchfox.org/mozilla-central/source/netwerk/protocol/webtransport/nsIWebTransportStream.idl + +interface nsIWebTransportSendStreamStats extends nsISupports { + readonly bytesSent: u64; + readonly bytesAcknowledged: u64; +} + +interface nsIWebTransportReceiveStreamStats extends nsISupports { + readonly bytesReceived: u64; +} + +interface nsIWebTransportStreamStatsCallback extends nsISupports { + onSendStatsAvailable(aStats: nsIWebTransportSendStreamStats): void; + onReceiveStatsAvailable(aStats: nsIWebTransportReceiveStreamStats): void; +} + +interface nsIWebTransportReceiveStream extends nsISupports { + sendStopSending(aError: u8): void; + getReceiveStreamStats(aCallback: nsIWebTransportStreamStatsCallback): void; + readonly hasReceivedFIN: boolean; + readonly inputStream: nsIAsyncInputStream; + readonly streamId: u64; +} + +interface nsIWebTransportSendStream extends nsISupports { + sendFin(): void; + reset(aErrorCode: u8): void; + getSendStreamStats(aCallback: nsIWebTransportStreamStatsCallback): void; + readonly outputStream: nsIAsyncOutputStream; + readonly streamId: u64; +} + +interface nsIWebTransportBidirectionalStream extends nsISupports { + sendStopSending(aError: u8): void; + sendFin(): void; + reset(aErrorCode: u8): void; + readonly hasReceivedFIN: boolean; + readonly inputStream: nsIAsyncInputStream; + readonly outputStream: nsIAsyncOutputStream; + readonly streamId: u64; +} + +// https://searchfox.org/mozilla-central/source/netwerk/wifi/nsIWifiAccessPoint.idl + +interface nsIWifiAccessPoint extends nsISupports { + readonly mac: string; + readonly ssid: string; + readonly rawSSID: string; + readonly signal: i32; +} + +// https://searchfox.org/mozilla-central/source/netwerk/wifi/nsIWifiListener.idl + +interface nsIWifiListener extends nsISupports { + onChange(accessPoints: nsIWifiAccessPoint[]): void; + onError(error: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/wifi/nsIWifiMonitor.idl + +interface nsIWifiMonitor extends nsISupports { + startWatching(aListener: nsIWifiListener, aForcePolling: boolean): void; + stopWatching(aListener: nsIWifiListener): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/parentalcontrols/nsIParentalControlsService.idl + +interface nsIParentalControlsService extends nsISupports { + readonly DOWNLOAD: 1; + readonly INSTALL_EXTENSION: 2; + readonly INSTALL_APP: 3; + readonly BROWSE: 4; + readonly SHARE: 5; + readonly BOOKMARK: 6; + readonly ADD_CONTACT: 7; + readonly SET_IMAGE: 8; + readonly MODIFY_ACCOUNTS: 9; + readonly REMOTE_DEBUGGING: 10; + readonly IMPORT_SETTINGS: 11; + readonly PRIVATE_BROWSING: 12; + readonly DATA_CHOICES: 13; + readonly CLEAR_HISTORY: 14; + readonly MASTER_PASSWORD: 15; + readonly GUEST_BROWSING: 16; + readonly ADVANCED_SETTINGS: 17; + readonly CAMERA_MICROPHONE: 18; + readonly BLOCK_LIST: 19; + readonly TELEMETRY: 20; + readonly HEALTH_REPORT: 21; + readonly DEFAULT_THEME: 22; + readonly ePCLog_URIVisit: 1; + readonly ePCLog_FileDownload: 2; + + readonly parentalControlsEnabled: boolean; + readonly blockFileDownloadsEnabled: boolean; + isAllowed(aAction: i16, aUri?: nsIURI): boolean; + readonly loggingEnabled: boolean; + log(aEntryType: i16, aFlag: boolean, aSource: nsIURI, aTarget?: nsIFile): void; +} + +// https://searchfox.org/mozilla-central/source/dom/media/bridge/IPeerConnection.idl + +interface IPeerConnectionObserver extends nsISupports { +} + +interface IPeerConnection extends nsISupports { + readonly kHintAudio: 1; + readonly kHintVideo: 2; + readonly kActionNone: -1; + readonly kActionOffer: 0; + readonly kActionAnswer: 1; + readonly kActionPRAnswer: 2; + readonly kActionRollback: 3; + readonly kIceGathering: 0; + readonly kIceWaiting: 1; + readonly kIceChecking: 2; + readonly kIceConnected: 3; + readonly kIceFailed: 4; + readonly kNew: 0; + readonly kNegotiating: 1; + readonly kActive: 2; + readonly kClosing: 3; + readonly kClosed: 4; + readonly kDataChannelReliable: 0; + readonly kDataChannelPartialReliableRexmit: 1; + readonly kDataChannelPartialReliableTimed: 2; + readonly kNoError: 0; + readonly kInvalidCandidate: 2; + readonly kInvalidMediastreamTrack: 3; + readonly kInvalidState: 4; + readonly kInvalidSessionDescription: 5; + readonly kIncompatibleSessionDescription: 6; + readonly kIncompatibleMediaStreamTrack: 8; + readonly kInternalError: 9; + readonly kTypeError: 10; + readonly kOperationError: 11; + readonly kMaxErrorType: 11; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICertOverrideService.idl + +interface nsICertOverride extends nsISupports { + readonly asciiHost: string; + readonly port: i32; + readonly hostPort: string; + readonly fingerprint: string; + readonly originAttributes: any; +} + +interface nsICertOverrideService extends nsISupports { + rememberValidityOverride(aHostName: string, aPort: i32, aOriginAttributes: any, aCert: nsIX509Cert, aTemporary: boolean): void; + hasMatchingOverride(aHostName: string, aPort: i32, aOriginAttributes: any, aCert: nsIX509Cert, aIsTemporary: OutParam<boolean>): boolean; + clearValidityOverride(aHostName: string, aPort: i32, aOriginAttributes: any): void; + clearAllOverrides(): void; + getOverrides(): nsICertOverride[]; + setDisableAllSecurityChecksAndLetAttackersInterceptMyData(aDisable: boolean): void; + readonly securityCheckDisabled: boolean; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICertStorage.idl + +type nsICertStorageCallback = Callable<{ + done(rv: nsresult, result: nsIVariant): void; +}> + +interface nsIRevocationState extends nsISupports { + readonly state: i16; +} + +interface nsIIssuerAndSerialRevocationState extends nsIRevocationState { + readonly issuer: string; + readonly serial: string; +} + +interface nsISubjectAndPubKeyRevocationState extends nsIRevocationState { + readonly subject: string; + readonly pubKey: string; +} + +interface nsICRLiteCoverage extends nsISupports { + readonly b64LogID: string; + readonly minTimestamp: u64; + readonly maxTimestamp: u64; +} + +interface nsICertInfo extends nsISupports { + readonly cert: string; + readonly subject: string; + readonly trust: i16; +} + +interface nsICertStorage extends nsISupports { + readonly DATA_TYPE_REVOCATION: 1; + readonly DATA_TYPE_CERTIFICATE: 2; + readonly DATA_TYPE_CRLITE: 3; + readonly DATA_TYPE_CRLITE_FILTER_FULL: 4; + readonly DATA_TYPE_CRLITE_FILTER_INCREMENTAL: 5; + readonly STATE_UNSET: 0; + readonly STATE_ENFORCE: 1; + readonly STATE_NOT_ENROLLED: 2; + readonly STATE_NOT_COVERED: 3; + readonly STATE_NO_FILTER: 4; + readonly TRUST_INHERIT: 0; + readonly TRUST_ANCHOR: 1; + + hasPriorData(type: u8, callback: nsICertStorageCallback): void; + setRevocations(revocations: nsIRevocationState[], callback: nsICertStorageCallback): void; + getRevocationState(issuer: u8[], serial: u8[], subject: u8[], pubkey: u8[]): i16; + setFullCRLiteFilter(filter: u8[], enrolledIssuers: string[], coverage: nsICRLiteCoverage[], callback: nsICertStorageCallback): void; + getCRLiteRevocationState(issuer: u8[], issuerSPKI: u8[], serialNumber: u8[], timestamps: nsICRLiteTimestamp[]): i16; + addCRLiteStash(stash: u8[], callback: nsICertStorageCallback): void; + isCertRevokedByStash(issuerSPKI: u8[], serialNumber: u8[]): boolean; + addCerts(certs: nsICertInfo[], callback: nsICertStorageCallback): void; + removeCertsByHashes(hashes: string[], callback: nsICertStorageCallback): void; + findCertsBySubject(subject: u8[]): u8[][]; + GetRemainingOperationCount(): i32; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICertTree.idl + +interface nsICertTreeItem extends nsISupports { + readonly cert: nsIX509Cert; +} + +interface nsICertTree extends nsITreeView { + loadCertsFromCache(cache: nsIX509Cert[], type: u32): void; + getCert(index: u32): nsIX509Cert; + getTreeItem(index: u32): nsICertTreeItem; + deleteEntryObject(index: u32): void; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICertificateDialogs.idl + +interface nsICertificateDialogs extends nsISupports { + confirmDownloadCACert(ctx: nsIInterfaceRequestor, cert: nsIX509Cert, trust: OutParam<u32>): boolean; + setPKCS12FilePassword(ctx: nsIInterfaceRequestor, password: OutParam<string>): boolean; + getPKCS12FilePassword(ctx: nsIInterfaceRequestor, password: OutParam<string>): boolean; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIClientAuthDialogService.idl + +type nsIClientAuthDialogCallback = Callable<{ + certificateChosen(cert: nsIX509Cert, rememberDecision: boolean): void; +}> + +interface nsIClientAuthDialogService extends nsISupports { + chooseCertificate(hostname: string, certArray: nsIX509Cert[], loadContext: nsILoadContext, callback: nsIClientAuthDialogCallback): void; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIClientAuthRememberService.idl + +interface nsIClientAuthRememberRecord extends nsISupports { + readonly asciiHost: string; + readonly dbKey: string; + readonly entryKey: string; +} + +interface nsIClientAuthRememberService extends nsISupports { + forgetRememberedDecision(key: string): void; + getDecisions(): nsIClientAuthRememberRecord[]; + rememberDecisionScriptable(aHostName: string, originAttributes: any, aClientCert: nsIX509Cert): void; + hasRememberedDecisionScriptable(aHostName: string, originAttributes: any, aCertDBKey: OutParam<string>): boolean; + clearRememberedDecisions(): void; + deleteDecisionsByHost(aHostName: string, aOriginAttributes: any): void; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIContentSignatureVerifier.idl + +interface nsIContentSignatureVerifier extends nsISupports { + readonly ContentSignatureProdRoot: 1; + readonly ContentSignatureStageRoot: 2; + readonly ContentSignatureDevRoot: 3; + readonly ContentSignatureLocalRoot: 4; + + asyncVerifyContentSignature(aData: string, aContentSignatureHeader: string, aCertificateChain: string, aHostname: string, aTrustedRoot: AppTrustedRoot): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsICryptoHash.idl + +interface nsICryptoHash extends nsISupports { + readonly MD5: 2; + readonly SHA1: 3; + readonly SHA256: 4; + readonly SHA384: 5; + readonly SHA512: 6; + + init(aAlgorithm: u32): void; + initWithString(aAlgorithm: string): void; + update(aData: u8[], aLen: u32): void; + updateFromStream(aStream: nsIInputStream, aLen: u32): void; + finish(aASCII: boolean): string; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIDataStorage.idl + +} // global + +declare namespace nsIDataStorageManager { + +enum DataStorage { + AlternateServices = 0, + ClientAuthRememberList = 1, + SiteSecurityServiceState = 2, +} + +} + +declare global { + +interface nsIDataStorageManager extends nsISupports, Enums<typeof nsIDataStorageManager.DataStorage> { + get(dataStorage: nsIDataStorageManager.DataStorage): nsIDataStorage; +} + +} // global + +declare namespace nsIDataStorage { + +enum DataType { + Persistent = 0, + Private = 1, +} + +} + +declare global { + +interface nsIDataStorage extends nsISupports, Enums<typeof nsIDataStorage.DataType> { + get(key: string, type: nsIDataStorage.DataType): string; + put(key: string, value: string, type: nsIDataStorage.DataType): void; + remove(key: string, type: nsIDataStorage.DataType): void; + clear(): void; + isReady(): boolean; + getAll(): nsIDataStorageItem[]; +} + +interface nsIDataStorageItem extends nsISupports { + readonly key: string; + readonly value: string; + readonly type: nsIDataStorage.DataType; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsINSSComponent.idl + +interface nsINSSComponent extends nsISupports { + getEnterpriseRoots(): u8[][]; + getEnterpriseRootsPEM(): string; + getEnterpriseIntermediates(): u8[][]; + getEnterpriseIntermediatesPEM(): string; + addEnterpriseIntermediate(intermediateBytes: u8[]): void; + clearSSLExternalAndInternalSessionCache(): void; + asyncClearSSLExternalAndInternalSessionCache(): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsINSSErrorsService.idl + +interface nsINSSErrorsService extends nsISupports { + readonly ERROR_CLASS_SSL_PROTOCOL: 1; + readonly ERROR_CLASS_BAD_CERT: 2; + readonly NSS_SEC_ERROR_BASE: -8192; + readonly NSS_SEC_ERROR_LIMIT: -7192; + readonly NSS_SSL_ERROR_BASE: -12288; + readonly NSS_SSL_ERROR_LIMIT: -11288; + readonly MOZILLA_PKIX_ERROR_BASE: -16384; + readonly MOZILLA_PKIX_ERROR_LIMIT: -15384; + + isNSSErrorCode(aNSPRCode: i32): boolean; + getXPCOMFromNSSError(aNSPRCode: i32): nsresult; + getErrorMessage(aXPCOMErrorCode: nsresult): string; + getErrorClass(aXPCOMErrorCode: nsresult): u32; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsINSSVersion.idl + +interface nsINSSVersion extends nsISupports { + readonly NSPR_MinVersion: string; + readonly NSS_MinVersion: string; + readonly NSSUTIL_MinVersion: string; + readonly NSSSSL_MinVersion: string; + readonly NSSSMIME_MinVersion: string; + readonly NSPR_Version: string; + readonly NSS_Version: string; + readonly NSSUTIL_Version: string; + readonly NSSSSL_Version: string; + readonly NSSSMIME_Version: string; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIOSKeyStore.idl + +interface nsIOSKeyStore extends nsISupports { + asyncGenerateSecret(label: string): Promise<any>; + asyncSecretAvailable(label: string): Promise<any>; + asyncRecoverSecret(label: string, recoveryPhrase: string): Promise<any>; + asyncDeleteSecret(label: string): Promise<any>; + asyncEncryptBytes(label: string, inBytes: u8[]): Promise<any>; + asyncDecryptBytes(label: string, encryptedBase64Text: string): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIOSReauthenticator.idl + +interface nsIOSReauthenticator extends nsISupports { + asyncReauthenticateUser(prompt: string, caption: string, parentWindow: mozIDOMWindow): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPK11Token.idl + +interface nsIPK11Token extends nsISupports { + readonly tokenName: string; + readonly isInternalKeyToken: boolean; + readonly tokenManID: string; + readonly tokenHWVersion: string; + readonly tokenFWVersion: string; + readonly tokenSerialNumber: string; + isLoggedIn(): boolean; + login(force: boolean): void; + logoutSimple(): void; + logoutAndDropAuthenticatedResources(): void; + needsLogin(): boolean; + readonly needsUserInit: boolean; + reset(): void; + checkPassword(password: string): boolean; + initPassword(initialPassword: string): void; + changePassword(oldPassword: string, newPassword: string): void; + readonly hasPassword: boolean; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPK11TokenDB.idl + +interface nsIPK11TokenDB extends nsISupports { + getInternalKeyToken(): nsIPK11Token; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPKCS11Module.idl + +interface nsIPKCS11Module extends nsISupports { + readonly name: string; + readonly libName: string; + listSlots(): nsISimpleEnumerator; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPKCS11ModuleDB.idl + +interface nsIPKCS11ModuleDB extends nsISupports { + deleteModule(moduleName: string): void; + addModule(moduleName: string, libraryFullPath: string, cryptoMechanismFlags: i32, cipherFlags: i32): void; + listModules(): nsISimpleEnumerator; + readonly canToggleFIPS: boolean; + toggleFIPSMode(): void; + readonly isFIPSEnabled: boolean; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPKCS11Slot.idl + +interface nsIPKCS11Slot extends nsISupports { + readonly SLOT_DISABLED: 0; + readonly SLOT_NOT_PRESENT: 1; + readonly SLOT_UNINITIALIZED: 2; + readonly SLOT_NOT_LOGGED_IN: 3; + readonly SLOT_LOGGED_IN: 4; + readonly SLOT_READY: 5; + + readonly name: string; + readonly desc: string; + readonly manID: string; + readonly HWVersion: string; + readonly FWVersion: string; + readonly status: u32; + getToken(): nsIPK11Token; + readonly tokenName: string; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIPublicKeyPinningService.idl + +interface nsIPublicKeyPinningService extends nsISupports { + hostHasPins(aURI: nsIURI): boolean; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsISecretDecoderRing.idl + +interface nsISecretDecoderRing extends nsISupports { + encryptString(text: string): string; + asyncEncryptStrings(plaintexts: string[]): Promise<any>; + decryptString(encryptedBase64Text: string): string; + asyncDecryptStrings(encryptedStrings: string[]): Promise<any>; + changePassword(): void; + logout(): void; + logoutAndTeardown(): void; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsISecurityUITelemetry.idl + +interface nsISecurityUITelemetry extends nsISupports { + readonly WARNING_ADDON_ASKING_PREVENTED: 1; + readonly WARNING_ADDON_ASKING_PREVENTED_CLICK_THROUGH: 2; + readonly WARNING_CONFIRM_ADDON_INSTALL: 3; + readonly WARNING_CONFIRM_ADDON_INSTALL_CLICK_THROUGH: 4; + readonly WARNING_CONFIRM_POST_TO_INSECURE_FROM_SECURE: 9; + readonly WARNING_CONFIRM_POST_TO_INSECURE_FROM_SECURE_CLICK_THROUGH: 10; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsISiteSecurityService.idl + +} // global + +declare namespace nsISiteSecurityService { + +enum ResetStateBy { + ExactDomain = 0, + RootDomain = 1, + BaseDomain = 2, +} + +} + +declare global { + +interface nsISiteSecurityService extends nsISupports, Enums<typeof nsISiteSecurityService.ResetStateBy> { + readonly Success: 0; + readonly ERROR_UNKNOWN: 1; + readonly ERROR_COULD_NOT_PARSE_HEADER: 3; + readonly ERROR_NO_MAX_AGE: 4; + readonly ERROR_MULTIPLE_MAX_AGES: 5; + readonly ERROR_INVALID_MAX_AGE: 6; + readonly ERROR_MULTIPLE_INCLUDE_SUBDOMAINS: 7; + readonly ERROR_INVALID_INCLUDE_SUBDOMAINS: 8; + readonly ERROR_COULD_NOT_SAVE_STATE: 13; + + processHeader(aSourceURI: nsIURI, aHeader: string, aOriginAttributes?: any, aMaxAge?: OutParam<u64>, aIncludeSubdomains?: OutParam<boolean>, aFailureResult?: OutParam<u32>): void; + resetState(aURI: nsIURI, aOriginAttributes?: any, aScope?: nsISiteSecurityService.ResetStateBy): void; + isSecureURI(aURI: nsIURI, aOriginAttributes?: any): boolean; + clearAll(): void; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsITLSSocketControl.idl + +interface nsITLSSocketControl extends nsISupports { + readonly KEY_EXCHANGE_UNKNOWN: -1; + readonly SSL_VERSION_3: 768; + readonly TLS_VERSION_1: 769; + readonly TLS_VERSION_1_1: 770; + readonly TLS_VERSION_1_2: 771; + readonly TLS_VERSION_1_3: 772; + readonly SSL_VERSION_UNKNOWN: -1; + readonly SSL_MAC_UNKNOWN: -1; + readonly SSL_MAC_NULL: 0; + readonly SSL_MAC_MD5: 1; + readonly SSL_MAC_SHA: 2; + readonly SSL_HMAC_MD5: 3; + readonly SSL_HMAC_SHA: 4; + readonly SSL_HMAC_SHA256: 5; + readonly SSL_MAC_AEAD: 6; + + proxyStartSSL(): void; + StartTLS(): void; + getAlpnEarlySelection(): string; + readonly earlyDataAccepted: boolean; + driveHandshake(): void; + joinConnection(npnProtocol: string, hostname: string, port: i32): boolean; + testJoinConnection(npnProtocol: string, hostname: string, port: i32): boolean; + isAcceptableForHost(hostname: string): boolean; + readonly KEAUsed: i16; + readonly KEAKeyBits: u32; + readonly providerFlags: u32; + readonly SSLVersionUsed: i16; + readonly SSLVersionOffered: i16; + readonly MACAlgorithmUsed: i16; + readonly clientCertSent: boolean; + readonly failedVerification: boolean; + esniTxt: string; + echConfig: string; + readonly retryEchConfig: string; + readonly peerId: string; + readonly securityInfo: nsITransportSecurityInfo; + asyncGetSecurityInfo(): Promise<any>; + claim(): void; + browserId: u64; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsITokenPasswordDialogs.idl + +interface nsITokenPasswordDialogs extends nsISupports { + setPassword(ctx: nsIInterfaceRequestor, token: nsIPK11Token): boolean; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsITransportSecurityInfo.idl + +} // global + +declare namespace nsITransportSecurityInfo { + +enum OverridableErrorCategory { + ERROR_UNSET = 0, + ERROR_TRUST = 1, + ERROR_DOMAIN = 2, + ERROR_TIME = 3, +} + +} + +declare global { + +interface nsITransportSecurityInfo extends nsISupports, Enums<typeof nsITransportSecurityInfo.OverridableErrorCategory> { + readonly SSL_VERSION_3: 0; + readonly TLS_VERSION_1: 1; + readonly TLS_VERSION_1_1: 2; + readonly TLS_VERSION_1_2: 3; + readonly TLS_VERSION_1_3: 4; + readonly CERTIFICATE_TRANSPARENCY_NOT_APPLICABLE: 0; + readonly CERTIFICATE_TRANSPARENCY_POLICY_COMPLIANT: 5; + readonly CERTIFICATE_TRANSPARENCY_POLICY_NOT_ENOUGH_SCTS: 6; + readonly CERTIFICATE_TRANSPARENCY_POLICY_NOT_DIVERSE_SCTS: 7; + + readonly securityState: u32; + readonly errorCode: i32; + readonly errorCodeString: string; + readonly failedCertChain: nsIX509Cert[]; + readonly serverCert: nsIX509Cert; + readonly succeededCertChain: nsIX509Cert[]; + readonly cipherName: string; + readonly keyLength: u32; + readonly secretKeyLength: u32; + readonly keaGroupName: string; + readonly signatureSchemeName: string; + readonly protocolVersion: u16; + readonly certificateTransparencyStatus: u16; + readonly isAcceptedEch: boolean; + readonly isDelegatedCredential: boolean; + readonly overridableErrorCategory: nsITransportSecurityInfo.OverridableErrorCategory; + readonly madeOCSPRequests: boolean; + readonly usedPrivateDNS: boolean; + readonly isExtendedValidation: boolean; + toString(): string; + readonly negotiatedNPN: string; + readonly resumed: boolean; + readonly isBuiltCertChainRootBuiltInRoot: boolean; + readonly peerId: string; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIX509Cert.idl + +interface nsIX509Cert extends nsISupports { + readonly UNKNOWN_CERT: 0; + readonly CA_CERT: 1; + readonly USER_CERT: 2; + readonly EMAIL_CERT: 4; + readonly SERVER_CERT: 8; + readonly ANY_CERT: 65535; + + readonly emailAddress: string; + getEmailAddresses(): string[]; + containsEmailAddress(aEmailAddress: string): boolean; + readonly subjectName: string; + readonly commonName: string; + readonly organization: string; + readonly organizationalUnit: string; + readonly sha256Fingerprint: string; + readonly sha1Fingerprint: string; + readonly tokenName: string; + readonly issuerName: string; + readonly serialNumber: string; + readonly issuerCommonName: string; + readonly issuerOrganization: string; + readonly issuerOrganizationUnit: string; + readonly validity: nsIX509CertValidity; + readonly dbKey: string; + readonly displayName: string; + readonly certType: u32; + getRawDER(): u8[]; + getBase64DERString(): string; + readonly sha256SubjectPublicKeyInfoDigest: string; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIX509CertDB.idl + +} // global + +declare namespace nsIAppSignatureInfo { + +enum SignatureAlgorithm { + PKCS7_WITH_SHA1 = 0, + PKCS7_WITH_SHA256 = 1, + COSE_WITH_SHA256 = 2, +} + +} + +declare global { + +interface nsIAppSignatureInfo extends nsISupports, Enums<typeof nsIAppSignatureInfo.SignatureAlgorithm> { + readonly signerCert: nsIX509Cert; + readonly signatureAlgorithm: nsIAppSignatureInfo.SignatureAlgorithm; +} + +type nsIOpenSignedAppFileCallback = Callable<{ + openSignedAppFileFinished(rv: nsresult, aZipReader: nsIZipReader, aSignatureInfos: nsIAppSignatureInfo[]): void; +}> + +type nsIAsyncBoolCallback = Callable<{ + onResult(result: boolean): void; +}> + +type nsICertVerificationCallback = Callable<{ + verifyCertFinished(aPRErrorCode: i32, aVerifiedChain: nsIX509Cert[], aHasEVPolicy: boolean): void; +}> + +interface nsIX509CertDB extends nsISupports { + readonly UNTRUSTED: 0; + readonly TRUSTED_SSL: 1; + readonly TRUSTED_EMAIL: 2; + readonly Success: 0; + readonly ERROR_UNKNOWN: 1; + readonly ERROR_PKCS12_NOSMARTCARD_EXPORT: 2; + readonly ERROR_PKCS12_RESTORE_FAILED: 3; + readonly ERROR_PKCS12_BACKUP_FAILED: 4; + readonly ERROR_PKCS12_CERT_COLLISION: 5; + readonly ERROR_BAD_PASSWORD: 6; + readonly ERROR_DECODE_ERROR: 7; + readonly ERROR_PKCS12_DUPLICATE_DATA: 8; + readonly AppXPCShellRoot: 6; + readonly AddonsPublicRoot: 7; + readonly AddonsStageRoot: 8; + readonly FLAG_LOCAL_ONLY: 1; + readonly FLAG_MUST_BE_EV: 2; + + findCertByDBKey(aDBkey: string): nsIX509Cert; + importCertificates(data: u8[], length: u32, type: u32, ctx: nsIInterfaceRequestor): void; + importEmailCertificate(data: u8[], length: u32, ctx: nsIInterfaceRequestor): void; + importUserCertificate(data: u8[], length: u32, ctx: nsIInterfaceRequestor): void; + deleteCertificate(aCert: nsIX509Cert): void; + setCertTrust(cert: nsIX509Cert, type: u32, trust: u32): void; + setCertTrustFromString(cert: nsIX509Cert, trustString: string): void; + isCertTrusted(cert: nsIX509Cert, certType: u32, trustType: u32): boolean; + importCertsFromFile(aFile: nsIFile, aType: u32): void; + importPKCS12File(aFile: nsIFile, aPassword: string): u32; + exportPKCS12File(aFile: nsIFile, aCerts: nsIX509Cert[], aPassword: string): u32; + constructX509FromBase64(base64: string): nsIX509Cert; + constructX509(certDER: u8[]): nsIX509Cert; + openSignedAppFileAsync(trustedRoot: AppTrustedRoot, aJarFile: nsIFile, callback: nsIOpenSignedAppFileCallback): void; + addCert(certDER: string, trust: string): nsIX509Cert; + asyncVerifyCertAtTime(aCert: nsIX509Cert, aUsage: i64, aFlags: u32, aHostname: string, aTime: u64, aCallback: nsICertVerificationCallback): void; + clearOCSPCache(): void; + addCertFromBase64(base64: string, trust: string): nsIX509Cert; + getCerts(): nsIX509Cert[]; + asPKCS7Blob(certList: nsIX509Cert[]): string; + asyncHasThirdPartyRoots(callback: nsIAsyncBoolCallback): void; +} + +// https://searchfox.org/mozilla-central/source/security/manager/ssl/nsIX509CertValidity.idl + +interface nsIX509CertValidity extends nsISupports { + readonly notBefore: PRTime; + readonly notAfter: PRTime; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/mozIAsyncHistory.idl + +interface mozIVisitInfo extends nsISupports { + readonly visitId: i64; + readonly visitDate: PRTime; + readonly transitionType: u32; + readonly referrerURI: nsIURI; +} + +interface mozIPlaceInfo extends nsISupports { + readonly placeId: i64; + readonly guid: string; + readonly uri: nsIURI; + readonly title: string; + readonly frecency: i64; + readonly visits: any; +} + +interface mozIVisitInfoCallback extends nsISupports { + handleError(aResultCode: nsresult, aPlaceInfo: mozIPlaceInfo): void; + handleResult(aPlaceInfo: mozIPlaceInfo): void; + handleCompletion(aUpdatedItems: u32): void; + readonly ignoreResults: boolean; + readonly ignoreErrors: boolean; +} + +type mozIVisitedStatusCallback = Callable<{ + isVisited(aURI: nsIURI, aVisitedStatus: boolean): void; +}> + +interface mozIAsyncHistory extends nsISupports { + updatePlaces(aPlaceInfo: any, aCallback?: mozIVisitInfoCallback): void; + isURIVisited(aURI: nsIURI, aCallback: mozIVisitedStatusCallback): void; + clearCache(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/mozIPlacesAutoComplete.idl + +interface mozIPlacesAutoComplete extends nsISupports { + readonly MATCH_ANYWHERE: 0; + readonly MATCH_BOUNDARY_ANYWHERE: 1; + readonly MATCH_BOUNDARY: 2; + readonly MATCH_BEGINNING: 3; + readonly MATCH_ANYWHERE_UNMODIFIED: 4; + readonly MATCH_BEGINNING_CASE_SENSITIVE: 5; + readonly BEHAVIOR_HISTORY: 1; + readonly BEHAVIOR_BOOKMARK: 2; + readonly BEHAVIOR_TAG: 4; + readonly BEHAVIOR_TITLE: 8; + readonly BEHAVIOR_URL: 16; + readonly BEHAVIOR_TYPED: 32; + readonly BEHAVIOR_JAVASCRIPT: 64; + readonly BEHAVIOR_OPENPAGE: 128; + readonly BEHAVIOR_RESTRICT: 256; + readonly BEHAVIOR_SEARCH: 512; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/mozIPlacesPendingOperation.idl + +interface mozIPlacesPendingOperation extends nsISupports { + cancel(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/mozISyncedBookmarksMirror.idl + +interface mozISyncedBookmarksMirrorProgressListener extends nsISupports { + onFetchLocalTree(took: i64, itemCount: i64, deletedCount: i64, problems: nsIPropertyBag): void; + onFetchRemoteTree(took: i64, itemCount: i64, deletedCount: i64, problems: nsIPropertyBag): void; + onMerge(took: i64, counts: nsIPropertyBag): void; + onApply(took: i64): void; +} + +interface mozISyncedBookmarksMirrorCallback extends nsISupports { + handleSuccess(result: boolean): void; + handleError(code: nsresult, message: string): void; +} + +interface mozISyncedBookmarksMirrorLogger extends nsISupports { + readonly LEVEL_OFF: 0; + readonly LEVEL_ERROR: 1; + readonly LEVEL_WARN: 2; + readonly LEVEL_DEBUG: 3; + readonly LEVEL_TRACE: 4; + + maxLevel: i16; + error(message: string): void; + warn(message: string): void; + debug(message: string): void; + trace(message: string): void; +} + +interface mozISyncedBookmarksMerger extends nsISupports { + readonly KIND_BOOKMARK: 1; + readonly KIND_QUERY: 2; + readonly KIND_FOLDER: 3; + readonly KIND_LIVEMARK: 4; + readonly KIND_SEPARATOR: 5; + readonly VALIDITY_VALID: 1; + readonly VALIDITY_REUPLOAD: 2; + readonly VALIDITY_REPLACE: 3; + + db: mozIStorageConnection; + logger: mozIServicesLogSink; + merge(localTimeSeconds: i64, remoteTimeSeconds: i64, callback: mozISyncedBookmarksMirrorCallback): mozIPlacesPendingOperation; + reset(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsIFaviconService.idl + +interface nsIFaviconService extends nsISupports { + readonly FAVICON_LOAD_PRIVATE: 1; + readonly FAVICON_LOAD_NON_PRIVATE: 2; + readonly MAX_FAVICON_BUFFER_SIZE: 65536; + + getFaviconLinkForIcon(aFaviconURI: nsIURI): nsIURI; + expireAllFavicons(): void; + setDefaultIconURIPreferredSize(aDefaultSize: u16): void; + preferredSizeFromURI(aURI: nsIURI): u16; + readonly defaultFavicon: nsIURI; + readonly defaultFaviconMimeType: string; + setAndFetchFaviconForPage(aPageURI: nsIURI, aFaviconURI: nsIURI, aForceReload: boolean, aFaviconLoadType: u32, aCallback?: nsIFaviconDataCallback, aLoadingPrincipal?: nsIPrincipal, aRequestContextID?: u64): mozIPlacesPendingOperation; + replaceFaviconData(aFaviconURI: nsIURI, aData: u8[], aMimeType: string, aExpiration?: PRTime): void; + replaceFaviconDataFromDataURL(aFaviconURI: nsIURI, aDataURL: string, aExpiration?: PRTime, aLoadingPrincipal?: nsIPrincipal): void; + getFaviconURLForPage(aPageURI: nsIURI, aCallback: nsIFaviconDataCallback, aPreferredWidth?: u16): void; + getFaviconDataForPage(aPageURI: nsIURI, aCallback: nsIFaviconDataCallback, aPreferredWidth?: u16): void; + copyFavicons(aFromPageURI: nsIURI, aToPageURI: nsIURI, aFaviconLoadType: u32, aCallback?: nsIFaviconDataCallback): void; +} + +type nsIFaviconDataCallback = Callable<{ + onComplete(aFaviconURI: nsIURI, aDataLen: u32, aData: u8[], aMimeType: string, aWidth: u16): void; +}> + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsINavBookmarksService.idl + +interface nsINavBookmarksService extends nsISupports { + readonly DEFAULT_INDEX: -1; + readonly TYPE_BOOKMARK: 1; + readonly TYPE_FOLDER: 2; + readonly TYPE_SEPARATOR: 3; + readonly TYPE_DYNAMIC_CONTAINER: 4; + readonly SOURCE_DEFAULT: 0; + readonly SOURCE_SYNC: 1; + readonly SOURCE_IMPORT: 2; + readonly SOURCE_SYNC_REPARENT_REMOVED_FOLDER_CHILDREN: 4; + readonly SOURCE_RESTORE: 5; + readonly SOURCE_RESTORE_ON_STARTUP: 6; + readonly SYNC_STATUS_UNKNOWN: 0; + readonly SYNC_STATUS_NEW: 1; + readonly SYNC_STATUS_NORMAL: 2; + + readonly tagsFolder: i64; + readonly totalSyncChanges: i64; + insertBookmark(aParentId: i64, aURI: nsIURI, aIndex: i32, aTitle: string, aGuid?: string, aSource?: u16): i64; + removeItem(aItemId: i64, aSource?: u16): void; + createFolder(aParentFolder: i64, name: string, index: i32, aGuid?: string, aSource?: u16): i64; + setItemTitle(aItemId: i64, aTitle: string, aSource?: u16): void; + getItemTitle(aItemId: i64): string; + setItemLastModified(aItemId: i64, aLastModified: PRTime, aSource?: u16): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsINavHistoryService.idl + +interface nsINavHistoryResultNode extends nsISupports { + readonly RESULT_TYPE_URI: 0; + readonly RESULT_TYPE_QUERY: 5; + readonly RESULT_TYPE_FOLDER: 6; + readonly RESULT_TYPE_SEPARATOR: 7; + readonly RESULT_TYPE_FOLDER_SHORTCUT: 9; + + readonly parent: nsINavHistoryContainerResultNode; + readonly parentResult: nsINavHistoryResult; + readonly uri: string; + readonly type: u32; + readonly title: string; + readonly accessCount: u32; + readonly time: PRTime; + readonly icon: string; + readonly indentLevel: i32; + readonly bookmarkIndex: i32; + readonly itemId: i64; + readonly dateAdded: PRTime; + readonly lastModified: PRTime; + readonly tags: string; + readonly pageGuid: string; + readonly bookmarkGuid: string; + readonly visitId: i64; + readonly visitType: u32; +} + +interface nsINavHistoryContainerResultNode extends nsINavHistoryResultNode { + readonly STATE_CLOSED: 0; + readonly STATE_LOADING: 1; + readonly STATE_OPENED: 2; + + containerOpen: boolean; + readonly state: u16; + readonly hasChildren: boolean; + readonly childCount: u32; + getChild(aIndex: u32): nsINavHistoryResultNode; + getChildIndex(aNode: nsINavHistoryResultNode): u32; +} + +interface nsINavHistoryQueryResultNode extends nsINavHistoryContainerResultNode { + readonly query: nsINavHistoryQuery; + readonly queryOptions: nsINavHistoryQueryOptions; + readonly folderItemId: i64; + readonly targetFolderGuid: string; +} + +interface nsINavHistoryResultObserver extends nsISupports { + readonly skipHistoryDetailsNotifications: boolean; + nodeInserted(aParent: nsINavHistoryContainerResultNode, aNode: nsINavHistoryResultNode, aNewIndex: u32): void; + nodeRemoved(aParent: nsINavHistoryContainerResultNode, aItem: nsINavHistoryResultNode, aOldIndex: u32): void; + nodeMoved(aNode: nsINavHistoryResultNode, aOldParent: nsINavHistoryContainerResultNode, aOldIndex: u32, aNewParent: nsINavHistoryContainerResultNode, aNewIndex: u32): void; + nodeTitleChanged(aNode: nsINavHistoryResultNode, aNewTitle: string): void; + nodeURIChanged(aNode: nsINavHistoryResultNode, aOldURI: string): void; + nodeIconChanged(aNode: nsINavHistoryResultNode): void; + nodeHistoryDetailsChanged(aNode: nsINavHistoryResultNode, aOldVisitDate: PRTime, aOldAccessCount: u32): void; + nodeTagsChanged(aNode: nsINavHistoryResultNode): void; + nodeKeywordChanged(aNode: nsINavHistoryResultNode, aNewKeyword: string): void; + nodeDateAddedChanged(aNode: nsINavHistoryResultNode, aNewValue: PRTime): void; + nodeLastModifiedChanged(aNode: nsINavHistoryResultNode, aNewValue: PRTime): void; + containerStateChanged(aContainerNode: nsINavHistoryContainerResultNode, aOldState: u32, aNewState: u32): void; + invalidateContainer(aContainerNode: nsINavHistoryContainerResultNode): void; + sortingChanged(sortingMode: u16): void; + batching(aToggleMode: boolean): void; + result: nsINavHistoryResult; +} + +interface nsINavHistoryResult extends nsISupports { + sortingMode: u16; + suppressNotifications: boolean; + addObserver(aObserver: nsINavHistoryResultObserver, aOwnsWeak?: boolean): void; + removeObserver(aObserver: nsINavHistoryResultObserver): void; + readonly root: nsINavHistoryContainerResultNode; + onBeginUpdateBatch(): void; + onEndUpdateBatch(): void; +} + +interface nsINavHistoryQuery extends nsISupports { + readonly TIME_RELATIVE_EPOCH: 0; + readonly TIME_RELATIVE_TODAY: 1; + readonly TIME_RELATIVE_NOW: 2; + + beginTime: PRTime; + beginTimeReference: u32; + readonly hasBeginTime: boolean; + readonly absoluteBeginTime: PRTime; + endTime: PRTime; + endTimeReference: u32; + readonly hasEndTime: boolean; + readonly absoluteEndTime: PRTime; + searchTerms: string; + readonly hasSearchTerms: boolean; + minVisits: i32; + maxVisits: i32; + setTransitions(transitions: u32[]): void; + getTransitions(): u32[]; + readonly transitionCount: u32; + domainIsHost: boolean; + domain: string; + readonly hasDomain: boolean; + uri: nsIURI; + readonly hasUri: boolean; + tags: nsIVariant; + tagsAreNot: boolean; + getParents(): string[]; + readonly parentCount: u32; + setParents(aGuids: string[]): void; + clone(): nsINavHistoryQuery; +} + +interface nsINavHistoryQueryOptions extends nsISupports { + readonly SORT_BY_NONE: 0; + readonly SORT_BY_TITLE_ASCENDING: 1; + readonly SORT_BY_TITLE_DESCENDING: 2; + readonly SORT_BY_DATE_ASCENDING: 3; + readonly SORT_BY_DATE_DESCENDING: 4; + readonly SORT_BY_URI_ASCENDING: 5; + readonly SORT_BY_URI_DESCENDING: 6; + readonly SORT_BY_VISITCOUNT_ASCENDING: 7; + readonly SORT_BY_VISITCOUNT_DESCENDING: 8; + readonly SORT_BY_DATEADDED_ASCENDING: 11; + readonly SORT_BY_DATEADDED_DESCENDING: 12; + readonly SORT_BY_LASTMODIFIED_ASCENDING: 13; + readonly SORT_BY_LASTMODIFIED_DESCENDING: 14; + readonly SORT_BY_TAGS_ASCENDING: 17; + readonly SORT_BY_TAGS_DESCENDING: 18; + readonly SORT_BY_FRECENCY_ASCENDING: 21; + readonly SORT_BY_FRECENCY_DESCENDING: 22; + readonly RESULTS_AS_URI: 0; + readonly RESULTS_AS_VISIT: 1; + readonly RESULTS_AS_DATE_QUERY: 3; + readonly RESULTS_AS_SITE_QUERY: 4; + readonly RESULTS_AS_DATE_SITE_QUERY: 5; + readonly RESULTS_AS_TAGS_ROOT: 6; + readonly RESULTS_AS_TAG_CONTENTS: 7; + readonly RESULTS_AS_ROOTS_QUERY: 8; + readonly RESULTS_AS_LEFT_PANE_QUERY: 9; + readonly QUERY_TYPE_HISTORY: 0; + readonly QUERY_TYPE_BOOKMARKS: 1; + + sortingMode: u16; + resultType: u16; + excludeItems: boolean; + excludeQueries: boolean; + expandQueries: boolean; + includeHidden: boolean; + maxResults: u32; + queryType: u16; + asyncEnabled: boolean; + clone(): nsINavHistoryQueryOptions; +} + +interface nsINavHistoryService extends nsISupports { + readonly DATABASE_SCHEMA_VERSION: 76; + readonly TRANSITION_LINK: 1; + readonly TRANSITION_TYPED: 2; + readonly TRANSITION_BOOKMARK: 3; + readonly TRANSITION_EMBED: 4; + readonly TRANSITION_REDIRECT_PERMANENT: 5; + readonly TRANSITION_REDIRECT_TEMPORARY: 6; + readonly TRANSITION_DOWNLOAD: 7; + readonly TRANSITION_FRAMED_LINK: 8; + readonly TRANSITION_RELOAD: 9; + readonly DATABASE_STATUS_OK: 0; + readonly DATABASE_STATUS_CREATE: 1; + readonly DATABASE_STATUS_CORRUPT: 2; + readonly DATABASE_STATUS_UPGRADED: 3; + readonly DATABASE_STATUS_LOCKED: 4; + readonly VISIT_SOURCE_ORGANIC: 0; + readonly VISIT_SOURCE_SPONSORED: 1; + readonly VISIT_SOURCE_BOOKMARKED: 2; + readonly VISIT_SOURCE_SEARCHED: 3; + + readonly databaseStatus: u16; + markPageAsFollowedBookmark(aURI: nsIURI): void; + markPageAsTyped(aURI: nsIURI): void; + markPageAsFollowedLink(aURI: nsIURI): void; + canAddURI(aURI: nsIURI): boolean; + getNewQuery(): nsINavHistoryQuery; + getNewQueryOptions(): nsINavHistoryQueryOptions; + executeQuery(aQuery: nsINavHistoryQuery, options: nsINavHistoryQueryOptions): nsINavHistoryResult; + queryStringToQuery(aQueryString: string, aQuery: OutParam<nsINavHistoryQuery>, options: OutParam<nsINavHistoryQueryOptions>): void; + queryToQueryString(aQuery: nsINavHistoryQuery, options: nsINavHistoryQueryOptions): string; + readonly historyDisabled: boolean; + makeGuid(): string; + hashURL(aSpec: string, aMode?: string): u64; + isFrecencyDecaying: boolean; + shouldStartFrecencyRecalculation: boolean; + readonly DBConnection: mozIStorageConnection; + asyncExecuteLegacyQuery(aQuery: nsINavHistoryQuery, aOptions: nsINavHistoryQueryOptions, aCallback: mozIStorageStatementCallback): mozIStoragePendingStatement; + readonly shutdownClient: nsIAsyncShutdownClient; + readonly connectionShutdownClient: nsIAsyncShutdownClient; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsIPlacesPreviewsHelperService.idl + +interface nsIPlacesPreviewsHelperService extends nsISupports { + getFilePathForURL(aURL: string): string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/places/nsITaggingService.idl + +interface nsITaggingService extends nsISupports { + tagURI(aURI: nsIURI, aTags: nsIVariant, aSource?: u16): void; + untagURI(aURI: nsIURI, aTags: nsIVariant, aSource?: u16): void; + getTagsForURI(aURI: nsIURI): string[]; +} + +// https://searchfox.org/mozilla-central/source/modules/libpref/nsIPrefBranch.idl + +interface nsIPrefBranch extends nsISupports { + readonly PREF_INVALID: 0; + readonly PREF_STRING: 32; + readonly PREF_INT: 64; + readonly PREF_BOOL: 128; + + readonly root: string; + getPrefType(aPrefName: string): i32; + getBoolPref(aPrefName: string, aDefaultValue?: boolean): boolean; + setBoolPref(aPrefName: string, aValue: boolean): void; + getFloatPref(aPrefName: string, aDefaultValue?: float): float; + getCharPref(aPrefName: string, aDefaultValue?: string): string; + setCharPref(aPrefName: string, aValue: string): void; + getStringPref(aPrefName: string, aDefaultValue?: string): string; + setStringPref(aPrefName: string, aValue: string): void; + getIntPref(aPrefName: string, aDefaultValue?: i32): i32; + setIntPref(aPrefName: string, aValue: i32): void; + getComplexValue<T extends nsIID>(aPrefName: string, aType: T): nsQIResult<T>; + setComplexValue(aPrefName: string, aType: nsID, aValue: nsISupports): void; + clearUserPref(aPrefName: string): void; + lockPref(aPrefName: string): void; + prefHasUserValue(aPrefName: string): boolean; + prefHasDefaultValue(aPrefName: string): boolean; + prefIsLocked(aPrefName: string): boolean; + prefIsSanitized(aPrefName: string): boolean; + unlockPref(aPrefName: string): void; + deleteBranch(aStartingAt: string): void; + getChildList(aStartingAt: string): string[]; + addObserver(aDomain: string, aObserver: nsIObserver, aHoldWeak?: boolean): void; + removeObserver(aDomain: string, aObserver: nsIObserver): void; +} + +// https://searchfox.org/mozilla-central/source/modules/libpref/nsIPrefLocalizedString.idl + +interface nsIPrefLocalizedString extends nsISupportsString { +} + +// https://searchfox.org/mozilla-central/source/modules/libpref/nsIPrefService.idl + +type nsIPrefStatsCallback = Callable<{ + visit(prefName: string, accessCount: u32): void; +}> + +interface nsIPrefObserver extends nsISupports { + onStringPref(kind: string, name: string, value: string, isSticky: boolean, isLocked: boolean): void; + onIntPref(kind: string, name: string, value: i32, isSticky: boolean, isLocked: boolean): void; + onBoolPref(kind: string, name: string, value: boolean, isSticky: boolean, isLocked: boolean): void; + onError(message: string): void; +} + +interface nsIPrefService extends nsISupports { + resetPrefs(): void; + savePrefFile(aFile: nsIFile): void; + getBranch(aPrefRoot: string): nsIPrefBranch; + getDefaultBranch(aPrefRoot: string): nsIPrefBranch; + readonly dirty: boolean; + readDefaultPrefsFromFile(aFile: nsIFile): void; + readUserPrefsFromFile(aFile: nsIFile): void; + readStats(callback: nsIPrefStatsCallback): void; + resetStats(): void; + parsePrefsFromBuffer(bytes: u8[], observer: nsIPrefObserver, pathLabel?: string): void; +} + +// https://searchfox.org/mozilla-central/source/modules/libpref/nsIRelativeFilePref.idl + +interface nsIRelativeFilePref extends nsISupports { + file: nsIFile; + relativeToKey: string; +} + +// https://searchfox.org/mozilla-central/source/uriloader/prefetch/nsIPrefetchService.idl + +interface nsIPrefetchService extends nsISupports { + prefetchURI(aURI: nsIURI, aReferrerInfo: nsIReferrerInfo, aSource: Node, aExplicit: boolean): void; + preloadURI(aURI: nsIURI, aReferrerInfo: nsIReferrerInfo, aSource: Node, aPolicyType: nsContentPolicyType): void; + hasMoreElements(): boolean; + cancelPrefetchPreloadURI(aURI: nsIURI, aSource: Node): void; +} + +// https://searchfox.org/mozilla-central/source/tools/profiler/gecko/nsIProfiler.idl + +interface nsIProfilerStartParams extends nsISupports { + readonly entries: u32; + readonly duration: double; + readonly interval: double; + readonly features: u32; + readonly activeTabID: u64; +} + +interface nsIProfiler extends nsISupports { + StartProfiler(aEntries: u32, aInterval: double, aFeatures: string[], aFilters?: string[], aActiveTabID?: u64, aDuration?: double): Promise<any>; + StopProfiler(): Promise<any>; + IsPaused(): boolean; + Pause(): Promise<any>; + Resume(): Promise<any>; + IsSamplingPaused(): boolean; + PauseSampling(): Promise<any>; + ResumeSampling(): Promise<any>; + waitOnePeriodicSampling(): Promise<any>; + GetProfile(aSinceTime?: double): string; + getProfileData(aSinceTime?: double): any; + getProfileDataAsync(aSinceTime?: double): Promise<any>; + getProfileDataAsArrayBuffer(aSinceTime?: double): Promise<any>; + getProfileDataAsGzippedArrayBuffer(aSinceTime?: double): Promise<any>; + dumpProfileToFileAsync(aFilename: string, aSinceTime?: double): Promise<any>; + dumpProfileToFile(aFilename: string): void; + IsActive(): boolean; + ClearAllPages(): void; + GetFeatures(): string[]; + readonly activeConfiguration: any; + GetAllFeatures(): string[]; + GetBufferInfo(aCurrentPosition: OutParam<u32>, aTotalSize: OutParam<u32>, aGeneration: OutParam<u32>): void; + getElapsedTime(): double; + readonly sharedLibraries: any; + getSymbolTable(aDebugPath: string, aBreakpadID: string): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/dom/media/test/rdd_process_xpcom/nsIRddProcessTest.idl + +interface nsIRddProcessTest extends nsISupports { + testTelemetryProbes(): Promise<any>; + stopProcess(): void; +} + +// https://searchfox.org/mozilla-central/source/remote/components/nsIMarionette.idl + +interface nsIMarionette extends nsISupports { + readonly running: boolean; +} + +// https://searchfox.org/mozilla-central/source/remote/components/nsIRemoteAgent.idl + +interface nsIRemoteAgent extends nsISupports { + readonly debuggerAddress: string; + readonly running: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/reputationservice/nsIApplicationReputation.idl + +interface nsIApplicationReputationService extends nsISupports { + readonly VERDICT_SAFE: 0; + readonly VERDICT_DANGEROUS: 1; + readonly VERDICT_UNCOMMON: 2; + readonly VERDICT_POTENTIALLY_UNWANTED: 3; + readonly VERDICT_DANGEROUS_HOST: 4; + + queryReputation(aQuery: nsIApplicationReputationQuery, aCallback: nsIApplicationReputationCallback): void; + isBinary(aFilename: string): boolean; + isExecutable(aFilename: string): boolean; +} + +interface nsIApplicationReputationQuery extends nsISupports { + readonly sourceURI: nsIURI; + readonly referrerInfo: nsIReferrerInfo; + readonly suggestedFileName: string; + readonly fileSize: u32; + readonly sha256Hash: string; + readonly signatureInfo: u8[][][]; + readonly redirects: nsIArray; +} + +type nsIApplicationReputationCallback = Callable<{ + onComplete(aShouldBlock: boolean, aStatus: nsresult, aVerdict: u32): void; +}> + +// https://searchfox.org/mozilla-central/source/security/sandbox/common/mozISandboxSettings.idl + +interface mozISandboxSettings extends nsISupports { + readonly effectiveContentSandboxLevel: i32; + readonly contentWin32kLockdownState: i32; + readonly contentWin32kLockdownStateString: string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/satchel/nsIFormAutoComplete.idl + +interface nsIFormAutoComplete extends nsISupports { + autoCompleteSearchAsync(aInputName: string, aSearchString: string, aField: HTMLInputElement, aPreviousResult: nsIAutoCompleteResult, aAddDatalist: boolean, aListener: nsIFormAutoCompleteObserver): void; + stopAutoCompleteSearch(): void; +} + +type nsIFormAutoCompleteObserver = Callable<{ + onSearchCompletion(result: nsIAutoCompleteResult): void; +}> + +// https://searchfox.org/mozilla-central/source/toolkit/components/satchel/nsIFormFillController.idl + +interface nsIFormFillController extends nsISupports { + readonly focusedInput: HTMLInputElement; + readonly passwordPopupAutomaticallyOpened: boolean; + attachPopupElementToDocument(document: Document, popup: Element): void; + detachFromDocument(document: Document): void; + isLoginManagerField(aInput: HTMLInputElement): boolean; + markAsLoginManagerField(aInput: HTMLInputElement): void; + markAsAutofillField(aInput: HTMLInputElement): void; + showPopup(): void; +} + +// https://searchfox.org/mozilla-central/source/services/interfaces/mozIAppServicesLogger.idl + +interface mozIAppServicesLogger extends nsISupports { + register(target: string, logger: mozIServicesLogSink): void; +} + +// https://searchfox.org/mozilla-central/source/services/interfaces/mozIBridgedSyncEngine.idl + +interface mozIBridgedSyncEngineCallback extends nsISupports { + handleSuccess(result: nsIVariant): void; + handleError(code: nsresult, message: string): void; +} + +interface mozIBridgedSyncEngineApplyCallback extends nsISupports { + handleSuccess(outgoingEnvelopesAsJSON: string[]): void; + handleError(code: nsresult, message: string): void; +} + +interface mozIBridgedSyncEngine extends nsISupports { + readonly storageVersion: i32; + readonly allowSkippedRecord: boolean; + logger: mozIServicesLogSink; + getLastSync(callback: mozIBridgedSyncEngineCallback): void; + setLastSync(lastSyncMillis: i64, callback: mozIBridgedSyncEngineCallback): void; + getSyncId(callback: mozIBridgedSyncEngineCallback): void; + resetSyncId(callback: mozIBridgedSyncEngineCallback): void; + ensureCurrentSyncId(newSyncId: string, callback: mozIBridgedSyncEngineCallback): void; + syncStarted(callback: mozIBridgedSyncEngineCallback): void; + storeIncoming(incomingEnvelopesAsJSON: string[], callback: mozIBridgedSyncEngineCallback): void; + apply(callback: mozIBridgedSyncEngineApplyCallback): void; + setUploaded(newTimestampMillis: i64, uploadedIds: string[], callback: mozIBridgedSyncEngineCallback): void; + syncFinished(callback: mozIBridgedSyncEngineCallback): void; + reset(callback: mozIBridgedSyncEngineCallback): void; + wipe(callback: mozIBridgedSyncEngineCallback): void; +} + +// https://searchfox.org/mozilla-central/source/services/interfaces/mozIInterruptible.idl + +interface mozIInterruptible extends nsISupports { + interrupt(): void; +} + +// https://searchfox.org/mozilla-central/source/services/interfaces/mozIServicesLogSink.idl + +interface mozIServicesLogSink extends nsISupports { + readonly LEVEL_OFF: 0; + readonly LEVEL_ERROR: 1; + readonly LEVEL_WARN: 2; + readonly LEVEL_INFO: 3; + readonly LEVEL_DEBUG: 4; + readonly LEVEL_TRACE: 5; + + maxLevel: i16; + error(message: string): void; + warn(message: string): void; + debug(message: string): void; + trace(message: string): void; + info(message: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/sessionstore/SessionStoreFunctions.idl + +interface nsISessionStoreFunctions extends nsISupports { + UpdateSessionStore(aBrowser: Element, aBrowsingContext: BrowsingContext, aPermanentKey: any, aEpoch: u32, aCollectSHistory: boolean, aData: any): void; + UpdateSessionStoreForStorage(aBrowser: Element, aBrowsingContext: BrowsingContext, aPermanentKey: any, aEpoch: u32, aData: any): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/sessionstore/nsISessionStoreRestoreData.idl + +interface nsISessionStoreRestoreData extends nsISupports { + url: string; + innerHTML: string; + scroll: string; + addTextField(aIsXPath: boolean, aIdOrXPath: string, aValue: string): void; + addCheckbox(aIsXPath: boolean, aIdOrXPath: string, aValue: boolean): void; + addFileList(aIsXPath: boolean, aIdOrXPath: string, aType: string, aFileList: string[]): void; + addSingleSelect(aIsXPath: boolean, aIdOrXPath: string, aSelectedIndex: u32, aValue: string): void; + addMultipleSelect(aIsXPath: boolean, aIdOrXPath: string, aValues: string[]): void; + addCustomElement(aIsXPath: boolean, aIdOrXPath: string, aValue: any, aState: any): void; + addChild(aChild: nsISessionStoreRestoreData, aIndex: u32): void; +} + +// https://searchfox.org/mozilla-central/source/browser/components/shell/nsIShellService.idl + +interface nsIShellService extends nsISupports { + readonly BACKGROUND_TILE: 1; + readonly BACKGROUND_STRETCH: 2; + readonly BACKGROUND_CENTER: 3; + readonly BACKGROUND_FILL: 4; + readonly BACKGROUND_FIT: 5; + readonly BACKGROUND_SPAN: 6; + + isDefaultBrowser(aForAllTypes?: boolean): boolean; + setDefaultBrowser(aForAllUsers: boolean): void; + setDesktopBackground(aElement: Element, aPosition: i32, aImageName: string): void; + desktopBackgroundColor: u32; +} + +// https://searchfox.org/mozilla-central/source/browser/components/shell/nsIWindowsShellService.idl + +interface nsIWindowsShellService extends nsISupports { + createShortcut(aBinary: nsIFile, aArguments: string[], aDescription: string, aIconFile: nsIFile, aIconIndex: u16, aAppUserModelId: string, aShortcutFolder: string, aShortcutName: string): Promise<any>; + getLaunchOnLoginShortcuts(): string[]; + pinCurrentAppToTaskbarAsync(aPrivateBrowsing: boolean): Promise<any>; + checkPinCurrentAppToTaskbarAsync(aPrivateBrowsing: boolean): Promise<any>; + isCurrentAppPinnedToTaskbarAsync(aumid: string): Promise<any>; + pinShortcutToTaskbar(aShortcutPath: string): void; + unpinShortcutFromTaskbar(aShortcutPath: string): void; + getTaskbarTabShortcutPath(aShortcutName: string): string; + getTaskbarTabPins(): string[]; + classifyShortcut(aPath: string): string; + hasMatchingShortcut(aAUMID: string, aPrivateBrowsing: boolean): Promise<any>; + canSetDefaultBrowserUserChoice(): boolean; + checkAllProgIDsExist(): boolean; + checkBrowserUserChoiceHashes(): boolean; + isDefaultHandlerFor(aFileExtensionOrProtocol: string): boolean; + queryCurrentDefaultHandlerFor(aFileExtensionOrProtocol: string): string; +} + +// https://searchfox.org/mozilla-central/source/docshell/shistory/nsIBFCacheEntry.idl + +interface nsIBFCacheEntry extends nsISupports { + RemoveFromBFCacheSync(): void; + RemoveFromBFCacheAsync(): void; +} + +// https://searchfox.org/mozilla-central/source/docshell/shistory/nsISHEntry.idl + +interface nsISHEntry extends nsISupports { + URI: nsIURI; + originalURI: nsIURI; + resultPrincipalURI: nsIURI; + unstrippedURI: nsIURI; + loadReplace: boolean; + title: string; + name: string; + isSubFrame: boolean; + hasUserInteraction: boolean; + hasUserActivation: boolean; + referrerInfo: nsIReferrerInfo; + documentViewer: nsIDocumentViewer; + readonly isInBFCache: boolean; + sticky: boolean; + windowState: nsISupports; + refreshURIList: nsIMutableArray; + postData: nsIInputStream; + readonly hasPostData: boolean; + layoutHistoryState: nsILayoutHistoryState; + parent: nsISHEntry; + loadType: u32; + ID: u32; + cacheKey: u32; + saveLayoutStateFlag: boolean; + contentType: string; + URIWasModified: boolean; + triggeringPrincipal: nsIPrincipal; + principalToInherit: nsIPrincipal; + partitionedPrincipalToInherit: nsIPrincipal; + csp: nsIContentSecurityPolicy; + stateData: nsIStructuredCloneContainer; + docshellID: nsID; + readonly isSrcdocEntry: boolean; + srcdocData: string; + baseURI: nsIURI; + scrollRestorationIsManual: boolean; + readonly loadedInThisProcess: boolean; + readonly childCount: i32; + persist: boolean; + setScrollPosition(x: i32, y: i32): void; + getScrollPosition(x: OutParam<i32>, y: OutParam<i32>): void; + initLayoutHistoryState(): nsILayoutHistoryState; + clone(): nsISHEntry; + hasDynamicallyAddedChild(): boolean; + adoptBFCacheEntry(aEntry: nsISHEntry): void; + abandonBFCacheEntry(): void; + sharesDocumentWith(aEntry: nsISHEntry): boolean; + setLoadTypeAsHistory(): void; + AddChild(aChild: nsISHEntry, aOffset: i32, aUseRemoteSubframes?: boolean): void; + GetChildAt(aIndex: i32): nsISHEntry; + readonly bfcacheID: u64; + wireframe: any; +} + +// https://searchfox.org/mozilla-central/source/docshell/shistory/nsISHistory.idl + +interface nsISHistory extends nsISupports { + readonly count: i32; + index: i32; + readonly requestedIndex: i32; + getEntryAtIndex(aIndex: i32): nsISHEntry; + purgeHistory(aNumEntries: i32): void; + addSHistoryListener(aListener: nsISHistoryListener): void; + removeSHistoryListener(aListener: nsISHistoryListener): void; + reloadCurrentEntry(): void; + addEntry(aEntry: nsISHEntry, aPersist: boolean): void; + updateIndex(): void; + replaceEntry(aIndex: i32, aReplaceEntry: nsISHEntry): void; + notifyOnHistoryReload(): boolean; + evictOutOfRangeDocumentViewers(aIndex: i32): void; + evictAllDocumentViewers(): void; + createEntry(): nsISHEntry; +} + +// https://searchfox.org/mozilla-central/source/docshell/shistory/nsISHistoryListener.idl + +interface nsISHistoryListener extends nsISupports { + OnHistoryNewEntry(aNewURI: nsIURI, aOldIndex: i32): void; + OnHistoryReload(): boolean; + OnHistoryGotoIndex(): void; + OnHistoryPurge(aNumEntries: i32): void; + OnHistoryTruncate(aNumEntries: i32): void; + OnHistoryReplaceEntry(): void; + OnDocumentViewerEvicted(aNumEvicted: u32): void; +} + +// https://searchfox.org/mozilla-central/source/extensions/spellcheck/idl/mozIPersonalDictionary.idl + +interface mozIPersonalDictionary extends nsISupports { + load(): void; + save(): void; + readonly wordList: nsIStringEnumerator; + check(word: string): boolean; + addWord(word: string): void; + removeWord(word: string): void; + ignoreWord(word: string): void; + endSession(): void; +} + +// https://searchfox.org/mozilla-central/source/extensions/spellcheck/idl/mozISpellCheckingEngine.idl + +interface mozISpellCheckingEngine extends nsISupports { + dictionaries: string[]; + personalDictionary: mozIPersonalDictionary; + getDictionaryList(): string[]; + check(word: string): boolean; + suggest(word: string): string[]; + loadDictionariesFromDir(dir: nsIFile): void; + addDirectory(dir: nsIFile): void; + removeDirectory(dir: nsIFile): void; + addDictionary(lang: string, file: nsIURI): void; + removeDictionary(lang: string, file: nsIURI): boolean; +} + +// https://searchfox.org/mozilla-central/source/startupcache/nsIStartupCacheInfo.idl + +interface nsIStartupCacheInfo extends nsISupports { + readonly IgnoreDiskCache: boolean; + readonly FoundDiskCacheOnInit: boolean; + readonly WroteToDiskCache: boolean; + readonly DiskCachePath: string; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageAsyncConnection.idl + +interface mozIStorageAsyncConnection extends nsISupports { + readonly TRANSACTION_DEFAULT: -1; + readonly TRANSACTION_DEFERRED: 0; + readonly TRANSACTION_IMMEDIATE: 1; + readonly TRANSACTION_EXCLUSIVE: 2; + + defaultTransactionType: i32; + readonly variableLimit: i32; + readonly transactionInProgress: boolean; + asyncClose(aCallback?: mozIStorageCompletionCallback): void; + asyncClone(aReadOnly: boolean, aCallback: mozIStorageCompletionCallback): void; + readonly databaseFile: nsIFile; + interrupt(): void; + asyncVacuum(aCallback?: mozIStorageCompletionCallback, aUseIncremental?: boolean, aSetPageSize?: i32): void; + createAsyncStatement(aSQLStatement: string): mozIStorageAsyncStatement; + executeAsync(aStatements: mozIStorageBaseStatement[], aCallback?: mozIStorageStatementCallback): mozIStoragePendingStatement; + executeSimpleSQLAsync(aSQLStatement: string, aCallback?: mozIStorageStatementCallback): mozIStoragePendingStatement; + loadExtension(aExtensionName: string, aCallback?: mozIStorageCompletionCallback): void; + createFunction(aFunctionName: string, aNumArguments: i32, aFunction: mozIStorageFunction): void; + removeFunction(aFunctionName: string): void; + setProgressHandler(aGranularity: i32, aHandler: mozIStorageProgressHandler): mozIStorageProgressHandler; + removeProgressHandler(): mozIStorageProgressHandler; + backupToFileAsync(aDestinationFile: nsIFile, aCallback: mozIStorageCompletionCallback): void; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageAsyncStatement.idl + +interface mozIStorageAsyncStatement extends mozIStorageBaseStatement { +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageBaseStatement.idl + +interface mozIStorageBaseStatement extends mozIStorageBindingParams { + readonly MOZ_STORAGE_STATEMENT_INVALID: 0; + readonly MOZ_STORAGE_STATEMENT_READY: 1; + readonly MOZ_STORAGE_STATEMENT_EXECUTING: 2; + + finalize(): void; + bindParameters(aParameters: mozIStorageBindingParamsArray): void; + newBindingParamsArray(): mozIStorageBindingParamsArray; + executeAsync(aCallback?: mozIStorageStatementCallback): mozIStoragePendingStatement; + readonly state: i32; + escapeStringForLIKE(aValue: string, aEscapeChar: string): string; + escapeUTF8StringForLIKE(aValue: string, aEscapeChar: string): string; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageBindingParams.idl + +interface mozIStorageBindingParams extends nsISupports { + bindByName(aName: string, aValue: nsIVariant): void; + bindBlobByName(aName: string, aValue: u8[]): void; + bindStringAsBlobByName(aName: string, aValue: string): void; + bindUTF8StringAsBlobByName(aName: string, aValue: string): void; + bindByIndex(aIndex: u32, aValue: nsIVariant): void; + bindBlobByIndex(aIndex: u32, aValue: u8[]): void; + bindStringAsBlobByIndex(aIndex: u32, aValue: string): void; + bindUTF8StringAsBlobByIndex(aIndex: u32, aValue: string): void; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageBindingParamsArray.idl + +interface mozIStorageBindingParamsArray extends nsISupports { + newBindingParams(): mozIStorageBindingParams; + addParams(aParameters: mozIStorageBindingParams): void; + readonly length: u32; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageCompletionCallback.idl + +type mozIStorageCompletionCallback = Callable<{ + complete(status: nsresult, value?: nsISupports): void; +}> + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageConnection.idl + +interface mozIStorageConnection extends mozIStorageAsyncConnection { + close(): void; + clone(aReadOnly?: boolean): mozIStorageConnection; + readonly defaultPageSize: i32; + readonly connectionReady: boolean; + readonly lastInsertRowID: i64; + readonly affectedRows: i32; + readonly lastError: i32; + readonly lastErrorString: string; + schemaVersion: i32; + createStatement(aSQLStatement: string): mozIStorageStatement; + executeSimpleSQL(aSQLStatement: string): void; + tableExists(aTableName: string): boolean; + indexExists(aIndexName: string): boolean; + beginTransaction(): void; + commitTransaction(): void; + rollbackTransaction(): void; + createTable(aTableName: string, aTableSchema: string): void; + setGrowthIncrement(aIncrement: i32, aDatabaseName: string): void; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageError.idl + +interface mozIStorageError extends nsISupports { + readonly ERROR: 1; + readonly INTERNAL: 2; + readonly PERM: 3; + readonly ABORT: 4; + readonly BUSY: 5; + readonly LOCKED: 6; + readonly NOMEM: 7; + readonly READONLY: 8; + readonly INTERRUPT: 9; + readonly IOERR: 10; + readonly CORRUPT: 11; + readonly FULL: 13; + readonly CANTOPEN: 14; + readonly EMPTY: 16; + readonly SCHEMA: 17; + readonly TOOBIG: 18; + readonly CONSTRAINT: 19; + readonly MISMATCH: 20; + readonly MISUSE: 21; + readonly NOLFS: 22; + readonly AUTH: 23; + readonly FORMAT: 24; + readonly RANGE: 25; + readonly NOTADB: 26; + + readonly result: i32; + readonly message: string; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageFunction.idl + +type mozIStorageFunction = Callable<{ + onFunctionCall(aFunctionArguments: mozIStorageValueArray): nsIVariant; +}> + +// https://searchfox.org/mozilla-central/source/storage/mozIStoragePendingStatement.idl + +interface mozIStoragePendingStatement extends nsISupports { + cancel(): void; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageProgressHandler.idl + +interface mozIStorageProgressHandler extends nsISupports { + onProgress(aConnection: mozIStorageConnection): boolean; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageResultSet.idl + +interface mozIStorageResultSet extends nsISupports { + getNextRow(): mozIStorageRow; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageRow.idl + +interface mozIStorageRow extends mozIStorageValueArray { + getResultByIndex(aIndex: u32): nsIVariant; + getResultByName(aName: string): nsIVariant; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageService.idl + +interface mozIStorageService extends nsISupports { + readonly OPEN_DEFAULT: 0; + readonly OPEN_SHARED: 1; + readonly OPEN_READONLY: 2; + readonly OPEN_IGNORE_LOCKING_MODE: 4; + readonly CONNECTION_DEFAULT: 0; + readonly CONNECTION_INTERRUPTIBLE: 1; + + openAsyncDatabase(aDatabaseStore: nsIVariant, aOpenFlags: u32, aConnectionFlags: u32, aCallback: mozIStorageCompletionCallback): void; + openSpecialDatabase(aStorageKey: string, aName?: string, aConnectionFlags?: u32): mozIStorageConnection; + openDatabase(aDatabaseFile: nsIFile, aConnectionFlags?: u32): mozIStorageConnection; + openUnsharedDatabase(aDatabaseFile: nsIFile, aConnectionFlags?: u32): mozIStorageConnection; + openDatabaseWithFileURL(aFileURL: nsIFileURL, aTelemetryFilename?: string, aConnectionFlags?: u32): mozIStorageConnection; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageStatement.idl + +interface mozIStorageStatement extends mozIStorageBaseStatement { + readonly VALUE_TYPE_NULL: 0; + readonly VALUE_TYPE_INTEGER: 1; + readonly VALUE_TYPE_FLOAT: 2; + readonly VALUE_TYPE_TEXT: 3; + readonly VALUE_TYPE_BLOB: 4; + + clone(): mozIStorageStatement; + readonly parameterCount: u32; + getParameterName(aParamIndex: u32): string; + getParameterIndex(aName: string): u32; + readonly columnCount: u32; + getColumnName(aColumnIndex: u32): string; + getColumnIndex(aName: string): u32; + reset(): void; + execute(): void; + executeStep(): boolean; + readonly numEntries: u32; + getTypeOfIndex(aIndex: u32): i32; + getVariant(aIndex: u32): nsIVariant; + getInt32(aIndex: u32): i32; + getInt64(aIndex: u32): i64; + getDouble(aIndex: u32): double; + getUTF8String(aIndex: u32): string; + getString(aIndex: u32): string; + getBlob(aIndex: u32, aDataSize: OutParam<u32>, aData: OutParam<u8[]>): void; + getBlobAsString(aIndex: u32): string; + getBlobAsUTF8String(aIndex: u32): string; + getIsNull(aIndex: u32): boolean; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageStatementCallback.idl + +interface mozIStorageStatementCallback extends nsISupports { + readonly REASON_FINISHED: 0; + readonly REASON_CANCELED: 1; + readonly REASON_ERROR: 2; + + handleResult(aResultSet: mozIStorageResultSet): void; + handleError(aError: mozIStorageError): void; + handleCompletion(aReason: u16): void; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageVacuumParticipant.idl + +interface mozIStorageVacuumParticipant extends nsISupports { + readonly expectedDatabasePageSize: i32; + readonly useIncrementalVacuum: boolean; + readonly databaseConnection: mozIStorageAsyncConnection; + onBeginVacuum(): boolean; + onEndVacuum(aSucceeded: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/storage/mozIStorageValueArray.idl + +interface mozIStorageValueArray extends nsISupports { + readonly VALUE_TYPE_NULL: 0; + readonly VALUE_TYPE_INTEGER: 1; + readonly VALUE_TYPE_FLOAT: 2; + readonly VALUE_TYPE_TEXT: 3; + readonly VALUE_TYPE_BLOB: 4; + + readonly numEntries: u32; + getTypeOfIndex(aIndex: u32): i32; + getInt32(aIndex: u32): i32; + getInt64(aIndex: u32): i64; + getDouble(aIndex: u32): double; + getUTF8String(aIndex: u32): string; + getString(aIndex: u32): string; + getBlob(aIndex: u32, aDataSize: OutParam<u32>, aData: OutParam<u8[]>): void; + getBlobAsString(aIndex: u32): string; + getBlobAsUTF8String(aIndex: u32): string; + getIsNull(aIndex: u32): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/taskscheduler/nsIWinTaskSchedulerService.idl + +interface nsIWinTaskSchedulerService extends nsISupports { + registerTask(aFolderName: string, aTaskName: string, aDefinitionXML: string, aUpdateExisting?: boolean): void; + validateTaskDefinition(aDefinitionXML: string): i32; + getTaskXML(aFolderName: string, aTaskName: string): string; + getCurrentUserSid(): string; + deleteTask(aFolderName: string, aTaskName: string): void; + getFolderTasks(aFolderName: string): string[]; + createFolder(aParentFolderName: string, aSubFolderName: string): void; + deleteFolder(aParentFolderName: string, aSubFolderName: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/telemetry/core/nsITelemetry.idl + +type nsIFetchTelemetryDataCallback = Callable<{ + complete(): void; +}> + +interface nsITelemetry extends nsISupports { + readonly HISTOGRAM_EXPONENTIAL: 0; + readonly HISTOGRAM_LINEAR: 1; + readonly HISTOGRAM_BOOLEAN: 2; + readonly HISTOGRAM_FLAG: 3; + readonly HISTOGRAM_COUNT: 4; + readonly HISTOGRAM_CATEGORICAL: 5; + readonly SCALAR_TYPE_COUNT: 0; + readonly SCALAR_TYPE_STRING: 1; + readonly SCALAR_TYPE_BOOLEAN: 2; + readonly DATASET_ALL_CHANNELS: 0; + readonly DATASET_PRERELEASE_CHANNELS: 1; + readonly INCLUDE_OLD_LOADEVENTS: 1; + readonly KEEP_LOADEVENTS_NEW: 2; + readonly INCLUDE_PRIVATE_FIELDS_IN_LOADEVENTS: 4; + readonly EXCLUDE_STACKINFO_FROM_LOADEVENTS: 8; + + getCategoricalLabels(): any; + getSnapshotForHistograms(aStoreName?: string, aClearStore?: boolean, aFilterTest?: boolean): any; + getSnapshotForKeyedHistograms(aStoreName?: string, aClearStore?: boolean, aFilterTest?: boolean): any; + getSnapshotForScalars(aStoreName?: string, aClearStore?: boolean, aFilterTest?: boolean): any; + getSnapshotForKeyedScalars(aStoreName?: string, aClearStore?: boolean, aFilterTest?: boolean): any; + readonly lastShutdownDuration: u32; + readonly failedProfileLockCount: u32; + readonly slowSQL: any; + readonly debugSlowSQL: any; + getUntrustedModuleLoadEvents(aFlags?: u32): Promise<any>; + readonly areUntrustedModuleLoadEventsReady: boolean; + getLoadedModules(): Promise<any>; + readonly lateWrites: any; + getHistogramById(id: string): any; + getKeyedHistogramById(id: string): any; + canRecordBase: boolean; + canRecordExtended: boolean; + readonly canRecordReleaseData: boolean; + readonly canRecordPrereleaseData: boolean; + readonly isOfficialTelemetry: boolean; + setHistogramRecordingEnabled(id: string, enabled: boolean): void; + asyncFetchTelemetryData(aCallback: nsIFetchTelemetryDataCallback): void; + readonly fileIOReports: any; + msSinceProcessStart(): double; + msSinceProcessStartIncludingSuspend(): double; + msSinceProcessStartExcludingSuspend(): double; + msSystemNow(): double; + scalarAdd(aName: string, aValue: any): void; + scalarSet(aName: string, aValue: any): void; + scalarSetMaximum(aName: string, aValue: any): void; + keyedScalarAdd(aName: string, aKey: string, aValue: any): void; + keyedScalarSet(aName: string, aKey: string, aValue: any): void; + keyedScalarSetMaximum(aName: string, aKey: string, aValue: any): void; + clearScalars(): void; + flushBatchedChildTelemetry(): void; + recordEvent(aCategory: string, aMethod: string, aObject: string, aValue?: any, extra?: any): void; + setEventRecordingEnabled(aCategory: string, aEnabled: boolean): void; + snapshotEvents(aDataset: u32, aClear?: boolean, aEventLimit?: u32): any; + registerEvents(aCategory: string, aEventData: any): void; + registerBuiltinEvents(aCategory: string, aEventData: any): void; + registerScalars(aCategoryName: string, aScalarData: any): void; + registerBuiltinScalars(aCategoryName: string, aScalarData: any): void; + clearEvents(): void; + getAllStores(): any; + earlyInit(): void; + delayedInit(): void; + shutdown(): void; + gatherMemory(): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/telemetry/dap/nsIDAPTelemetry.idl + +interface nsIDAPTelemetry extends nsISupports { + GetReportU8(leaderHpkeConfig: u8[], helperHpkeConfig: u8[], measurement: u8, task_id: u8[], time_precision: u64, report: OutParam<u8[]>): void; + GetReportVecU8(leaderHpkeConfig: u8[], helperHpkeConfig: u8[], measurement: u8[], task_id: u8[], time_precision: u64, report: OutParam<u8[]>): void; + GetReportVecU16(leaderHpkeConfig: u8[], helperHpkeConfig: u8[], measurement: u16[], task_id: u8[], time_precision: u64, report: OutParam<u8[]>): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/test/httpserver/nsIHttpServer.idl + +interface nsIHttpServer extends nsISupports { + start(port: i32): void; + start_ipv6(port: i32): void; + start_dualStack(port: i32): void; + stop(callback: nsIHttpServerStoppedCallback): void; + registerFile(path: string, file: nsIFile, handler?: nsIHttpRequestHandler): void; + registerPathHandler(path: string, handler: nsIHttpRequestHandler): void; + registerPrefixHandler(prefix: string, handler: nsIHttpRequestHandler): void; + registerErrorHandler(code: u32, handler: nsIHttpRequestHandler): void; + registerDirectory(path: string, dir: nsIFile): void; + registerContentType(extension: string, type: string): void; + setIndexHandler(handler: nsIHttpRequestHandler): void; + readonly identity: nsIHttpServerIdentity; + getState(path: string, key: string): string; + setState(path: string, key: string, value: string): void; + getSharedState(key: string): string; + setSharedState(key: string, value: string): void; + getObjectState(key: string): nsISupports; + setObjectState(key: string, value: nsISupports): void; +} + +type nsIHttpServerStoppedCallback = Callable<{ + onStopped(): void; +}> + +interface nsIHttpServerIdentity extends nsISupports { + readonly primaryScheme: string; + readonly primaryHost: string; + readonly primaryPort: i32; + add(scheme: string, host: string, port: i32): void; + remove(scheme: string, host: string, port: i32): boolean; + has(scheme: string, host: string, port: i32): boolean; + getScheme(host: string, port: i32): string; + setPrimary(scheme: string, host: string, port: i32): void; +} + +type nsIHttpRequestHandler = Callable<{ + handle(request: nsIHttpRequest, response: nsIHttpResponse): void; +}> + +interface nsIHttpRequest extends nsISupports { + readonly method: string; + readonly scheme: string; + readonly host: string; + readonly port: u32; + readonly path: string; + readonly queryString: string; + readonly httpVersion: string; + getHeader(fieldName: string): string; + hasHeader(fieldName: string): boolean; + readonly headers: nsISimpleEnumerator; + readonly bodyInputStream: nsIInputStream; +} + +interface nsIHttpResponse extends nsISupports { + setStatusLine(httpVersion: string, statusCode: u16, description: string): void; + setHeader(name: string, value: string, merge: boolean): void; + setHeaderNoCheck(name: string, value: string): void; + readonly bodyOutputStream: nsIOutputStream; + write(data: string): void; + processAsync(): void; + seizePower(): void; + finish(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/thumbnails/nsIPageThumbsStorageService.idl + +interface nsIPageThumbsStorageService extends nsISupports { + getLeafNameForURL(aURL: string): string; + readonly path: string; + getFilePathForURL(aURL: string): string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/profile/nsIProfileMigrator.idl + +interface nsIProfileStartup extends nsISupports { + readonly directory: nsIFile; + doStartup(): void; +} + +interface nsIProfileMigrator extends nsISupports { + migrate(aStartup: nsIProfileStartup, aKey: string, aProfileName?: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/profile/nsIProfileUnlocker.idl + +interface nsIProfileUnlocker extends nsISupports { + readonly ATTEMPT_QUIT: 0; + readonly FORCE_QUIT: 1; + + unlock(aSeverity: u32): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/profile/nsIToolkitProfile.idl + +interface nsIProfileLock extends nsISupports { + readonly directory: nsIFile; + readonly localDirectory: nsIFile; + readonly replacedLockTime: PRTime; + unlock(): void; +} + +interface nsIToolkitProfile extends nsISupports { + readonly rootDir: nsIFile; + readonly localDir: nsIFile; + name: string; + remove(removeFiles: boolean): void; + removeInBackground(removeFiles: boolean): void; + lock(aUnlocker: OutParam<nsIProfileUnlocker>): nsIProfileLock; +} + +// https://searchfox.org/mozilla-central/source/toolkit/profile/nsIToolkitProfileService.idl + +} // global + +declare namespace nsIToolkitProfileService { + +enum downgradeUIFlags { + hasSync = 1, +} + +enum downgradeUIChoice { + quit = 0, + createNewProfile = 1, +} + +enum profileManagerResult { + exit = 0, + launchWithProfile = 1, + restart = 2, +} + +} + +declare global { + +interface nsIToolkitProfileService extends nsISupports, Enums<typeof nsIToolkitProfileService.downgradeUIFlags & typeof nsIToolkitProfileService.downgradeUIChoice & typeof nsIToolkitProfileService.profileManagerResult> { + readonly isListOutdated: boolean; + startWithLastProfile: boolean; + readonly profiles: nsISimpleEnumerator; + readonly currentProfile: nsIToolkitProfile; + defaultProfile: nsIToolkitProfile; + selectStartupProfile(aArgv: string[], aIsResetting: boolean, aUpdateChannel: string, aLegacyInstallHash: string, aRootDir: OutParam<nsIFile>, aLocalDir: OutParam<nsIFile>, aProfile: OutParam<nsIToolkitProfile>): boolean; + getProfileByName(aName: string): nsIToolkitProfile; + createProfile(aRootDir: nsIFile, aName: string): nsIToolkitProfile; + createUniqueProfile(aRootDir: nsIFile, aNamePrefix: string): nsIToolkitProfile; + readonly profileCount: u32; + flush(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/bouncetrackingprotection/nsIBounceTrackingProtection.idl + +interface nsIBounceTrackingProtection extends nsISupports { + clearAll(): void; + clearBySiteHostAndOA(aSiteHost: string, originAttributes: any): void; + clearBySiteHost(aSiteHost: string): void; + clearByTimeRange(aFrom: PRTime, aTo: PRTime): void; + clearByOriginAttributesPattern(aPattern: string): void; + testRunPurgeBounceTrackers(): Promise<any>; + testClearExpiredUserActivations(): void; + testGetBounceTrackerCandidateHosts(originAttributes: any): string[]; + testGetUserActivationHosts(originAttributes: any): string[]; + testAddBounceTrackerCandidate(originAttributes: any, aSiteHost: string, aBounceTime: PRTime): void; + testAddUserActivation(originAttributes: any, aSiteHost: string, aActivationTime: PRTime): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIContentBlockingAllowList.idl + +interface nsIContentBlockingAllowList extends nsISupports { + computeContentBlockingAllowListPrincipal(aPrincipal: nsIPrincipal): nsIPrincipal; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIPartitioningExceptionListService.idl + +type nsIPartitioningExceptionListObserver = Callable<{ + onExceptionListUpdate(aList: string): void; +}> + +interface nsIPartitioningExceptionListService extends nsISupports { + registerAndRunExceptionListObserver(aObserver: nsIPartitioningExceptionListObserver): void; + unregisterExceptionListObserver(aObserver: nsIPartitioningExceptionListObserver): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIPurgeTrackerService.idl + +interface nsIPurgeTrackerService extends nsISupports { + purgeTrackingCookieJars(): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsITrackingDBService.idl + +interface nsITrackingDBService extends nsISupports { + readonly OTHER_COOKIES_BLOCKED_ID: 0; + readonly TRACKERS_ID: 1; + readonly TRACKING_COOKIES_ID: 2; + readonly CRYPTOMINERS_ID: 3; + readonly FINGERPRINTERS_ID: 4; + readonly SOCIAL_ID: 5; + readonly SUSPICIOUS_FINGERPRINTERS_ID: 6; + + recordContentBlockingLog(data: string): void; + saveEvents(data: string): Promise<any>; + clearAll(): Promise<any>; + clearSince(since: i64): Promise<any>; + getEventsByDateRange(dateFrom: i64, dateTo: i64): Promise<any>; + sumAllEvents(): Promise<any>; + getEarliestRecordedDate(): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIURLDecorationAnnotationsService.idl + +interface nsIURLDecorationAnnotationsService extends nsISupports { + ensureUpdated(): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIURLQueryStringStripper.idl + +interface nsIURLQueryStringStripper extends nsISupports { + strip(aURI: nsIURI, aIsPBM: boolean, aOutput: OutParam<nsIURI>): u32; + stripForCopyOrShare(aURI: nsIURI): nsIURI; + testGetStripList(): string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/antitracking/nsIURLQueryStrippingListService.idl + +interface nsIURLQueryStrippingListObserver extends nsISupports { + onQueryStrippingListUpdate(aStripList: string, aAllowList: string): void; + onStripOnShareUpdate(aStripRules: string[]): void; +} + +interface nsIURLQueryStrippingListService extends nsISupports { + registerAndRunObserver(aObserver: nsIURLQueryStrippingListObserver): void; + registerAndRunObserverStripOnShare(aObserver: nsIURLQueryStrippingListObserver): void; + unregisterObserver(aObserver: nsIURLQueryStrippingListObserver): void; + unregisterStripOnShareObserver(aObserver: nsIURLQueryStrippingListObserver): void; + clearLists(): void; + testWaitForInit(): Promise<any>; + testSetList(testFile: any): Promise<any>; + testHasStripOnShareObservers(): boolean; + testHasQPSObservers(): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/asyncshutdown/nsIAsyncShutdown.idl + +interface nsIAsyncShutdownBlocker extends nsISupports { + readonly name: string; + blockShutdown(aBarrierClient: nsIAsyncShutdownClient): void; + readonly state: nsIPropertyBag; +} + +interface nsIAsyncShutdownClient extends nsISupports { + readonly name: string; + readonly isClosed: boolean; + addBlocker(aBlocker: nsIAsyncShutdownBlocker, aFileName: string, aLineNumber: i32, aStack: string): void; + removeBlocker(aBlocker: nsIAsyncShutdownBlocker): void; + readonly jsclient: any; +} + +type nsIAsyncShutdownCompletionCallback = Callable<{ + done(): void; +}> + +interface nsIAsyncShutdownBarrier extends nsISupports { + readonly client: nsIAsyncShutdownClient; + readonly state: nsIPropertyBag; + wait(aOnReady: nsIAsyncShutdownCompletionCallback): void; +} + +interface nsIAsyncShutdownService extends nsISupports { + makeBarrier(aName: string): nsIAsyncShutdownBarrier; + readonly profileBeforeChange: nsIAsyncShutdownClient; + readonly profileChangeTeardown: nsIAsyncShutdownClient; + readonly quitApplicationGranted: nsIAsyncShutdownClient; + readonly sendTelemetry: nsIAsyncShutdownClient; + readonly webWorkersShutdown: nsIAsyncShutdownClient; + readonly xpcomWillShutdown: nsIAsyncShutdownClient; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/backgroundtasks/nsIBackgroundTasks.idl + +interface nsIBackgroundTasks extends nsISupports { + readonly isBackgroundTaskMode: boolean; + backgroundTaskName(): string; + overrideBackgroundTaskNameForTesting(taskName: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/backgroundtasks/nsIBackgroundTasksManager.idl + +interface nsIBackgroundTasksManager extends nsICommandLineHandler { + runBackgroundTaskNamed(aTaskName: string, aCommandLine: nsICommandLine): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/backgroundtasks/nsIBackgroundTasksRunner.idl + +interface nsIBackgroundTasksRunner extends nsISupports { + runInDetachedProcess(aTaskName: string, aCommandLine: string[]): void; + removeDirectoryInDetachedProcess(aParentDirPath: string, aChildDirName: string, aSecondsToWait: string, aOtherFoldersSuffix: string, aMetricsId?: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/cleardata/nsIClearDataService.idl + +interface nsIClearDataService extends nsISupports { + readonly CLEAR_COOKIES: 1; + readonly CLEAR_NETWORK_CACHE: 2; + readonly CLEAR_IMAGE_CACHE: 4; + readonly CLEAR_DOWNLOADS: 16; + readonly CLEAR_PASSWORDS: 32; + readonly CLEAR_MEDIA_DEVICES: 64; + readonly CLEAR_DOM_QUOTA: 128; + readonly CLEAR_PREDICTOR_NETWORK_DATA: 256; + readonly CLEAR_DOM_PUSH_NOTIFICATIONS: 512; + readonly CLEAR_HISTORY: 1024; + readonly CLEAR_SESSION_HISTORY: 2048; + readonly CLEAR_AUTH_TOKENS: 4096; + readonly CLEAR_AUTH_CACHE: 8192; + readonly CLEAR_PERMISSIONS: 16384; + readonly CLEAR_CONTENT_PREFERENCES: 32768; + readonly CLEAR_HSTS: 65536; + readonly CLEAR_EME: 131072; + readonly CLEAR_REPORTS: 262144; + readonly CLEAR_STORAGE_ACCESS: 524288; + readonly CLEAR_CERT_EXCEPTIONS: 1048576; + readonly CLEAR_CONTENT_BLOCKING_RECORDS: 2097152; + readonly CLEAR_CSS_CACHE: 4194304; + readonly CLEAR_PREFLIGHT_CACHE: 8388608; + readonly CLEAR_CLIENT_AUTH_REMEMBER_SERVICE: 16777216; + readonly CLEAR_CREDENTIAL_MANAGER_STATE: 16777216; + readonly CLEAR_COOKIE_BANNER_EXCEPTION: 33554432; + readonly CLEAR_COOKIE_BANNER_EXECUTED_RECORD: 67108864; + readonly CLEAR_FINGERPRINTING_PROTECTION_STATE: 134217728; + readonly CLEAR_BOUNCE_TRACKING_PROTECTION_STATE: 268435456; + readonly CLEAR_ALL: 4294967295; + readonly CLEAR_ALL_CACHES: 12648454; + readonly CLEAR_DOM_STORAGES: 262784; + readonly CLEAR_FORGET_ABOUT_SITE: 534237079; + + deleteDataFromLocalFiles(aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void; + deleteDataFromHost(aHost: string, aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void; + deleteDataFromBaseDomain(aDomainOrHost: string, aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void; + deleteDataFromPrincipal(aPrincipal: nsIPrincipal, aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void; + deleteDataInTimeRange(aFrom: PRTime, aTo: PRTime, aIsUserRequest: boolean, aFlags: u32, aCallback: nsIClearDataCallback): void; + deleteData(aFlags: u32, aCallback: nsIClearDataCallback): void; + deleteDataFromOriginAttributesPattern(aOriginAttributesPattern: any, aCallback?: nsIClearDataCallback): void; + deleteUserInteractionForClearingHistory(aPrincipalsWithStorage: nsIPrincipal[], aFrom?: PRTime, aCallback?: nsIClearDataCallback): void; + cleanupAfterDeletionAtShutdown(aFlags: u32, aCallback: nsIClearDataCallback): void; +} + +type nsIClearDataCallback = Callable<{ + onDataDeleted(aFailedFlags: u32): void; +}> + +// https://searchfox.org/mozilla-central/source/toolkit/components/contentanalysis/nsIContentAnalysis.idl + +} // global + +declare namespace nsIContentAnalysisAcknowledgement { + +enum Result { + eSuccess = 1, + eInvalidResponse = 2, + eTooLate = 3, +} + +enum FinalAction { + eUnspecified = 0, + eAllow = 1, + eReportOnly = 2, + eWarn = 3, + eBlock = 4, +} + +} + +declare global { + +interface nsIContentAnalysisAcknowledgement extends nsISupports, Enums<typeof nsIContentAnalysisAcknowledgement.Result & typeof nsIContentAnalysisAcknowledgement.FinalAction> { + readonly result: nsIContentAnalysisAcknowledgement.Result; + readonly finalAction: nsIContentAnalysisAcknowledgement.FinalAction; +} + +} // global + +declare namespace nsIContentAnalysisResponse { + +enum Action { + eUnspecified = 0, + eReportOnly = 1, + eWarn = 2, + eBlock = 3, + eAllow = 1000, + eCanceled = 1001, +} + +} + +declare global { + +interface nsIContentAnalysisResponse extends nsISupports, Enums<typeof nsIContentAnalysisResponse.Action> { + readonly action: nsIContentAnalysisResponse.Action; + readonly shouldAllowContent: boolean; + readonly requestToken: string; + acknowledge(aCaa: nsIContentAnalysisAcknowledgement): void; +} + +interface nsIClientDownloadResource extends nsISupports { + readonly DOWNLOAD_URL: 0; + readonly DOWNLOAD_REDIRECT: 1; + readonly TAB_URL: 2; + readonly TAB_REDIRECT: 3; + readonly PPAPI_DOCUMENT: 4; + readonly PPAPI_PLUGIN: 5; + + readonly url: string; + readonly type: u32; +} + +} // global + +declare namespace nsIContentAnalysisRequest { + +enum AnalysisType { + eUnspecified = 0, + eFileDownloaded = 1, + eFileAttached = 2, + eBulkDataEntry = 3, + ePrint = 4, + eFileTransfer = 5, +} + +enum OperationType { + eCustomDisplayString = 0, + eClipboard = 1, + eDroppedText = 2, +} + +} + +declare global { + +interface nsIContentAnalysisRequest extends nsISupports, Enums<typeof nsIContentAnalysisRequest.AnalysisType & typeof nsIContentAnalysisRequest.OperationType> { + readonly analysisType: nsIContentAnalysisRequest.AnalysisType; + readonly operationTypeForDisplay: nsIContentAnalysisRequest.OperationType; + readonly operationDisplayString: string; + readonly textContent: string; + readonly filePath: string; + readonly url: nsIURI; + readonly sha256Digest: string; + readonly resources: nsIClientDownloadResource[]; + readonly email: string; + readonly requestToken: string; + readonly windowGlobalParent: WindowGlobalParent; +} + +interface nsIContentAnalysisResult extends nsISupports { + readonly shouldAllowContent: boolean; +} + +interface nsIContentAnalysisCallback extends nsISupports { + contentResult(aResult: nsIContentAnalysisResponse): void; + error(aResult: nsresult): void; +} + +interface nsIContentAnalysis extends nsISupports { + readonly isActive: boolean; + readonly mightBeActive: boolean; + isSetByEnterprisePolicy: boolean; + analyzeContentRequest(aCar: nsIContentAnalysisRequest, aAutoAcknowledge: boolean): Promise<any>; + analyzeContentRequestCallback(aCar: nsIContentAnalysisRequest, aAutoAcknowledge: boolean, callback: nsIContentAnalysisCallback): void; + cancelContentAnalysisRequest(aRequestToken: string): void; + respondToWarnDialog(aRequestToken: string, aAllowContent: boolean): void; + cancelAllRequests(): void; + testOnlySetCACmdLineArg(aVal: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsIClickRule.idl + +} // global + +declare namespace nsIClickRule { + +enum RunContext { + RUN_TOP = 0, + RUN_CHILD = 1, + RUN_ALL = 2, +} + +} + +declare global { + +interface nsIClickRule extends nsISupports, Enums<typeof nsIClickRule.RunContext> { + readonly id: string; + readonly presence: string; + readonly skipPresenceVisibilityCheck: boolean; + readonly runContext: nsIClickRule.RunContext; + readonly hide: string; + readonly optOut: string; + readonly optIn: string; + readonly isGlobalRule: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsICookieBannerListService.idl + +interface nsICookieBannerListService extends nsISupports { + init(): void; + initForTest(): Promise<any>; + shutdown(): void; + importAllRules(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsICookieBannerRule.idl + +interface nsICookieBannerRule extends nsISupports { + id: string; + domains: string[]; + readonly cookiesOptOut: nsICookieRule[]; + readonly cookiesOptIn: nsICookieRule[]; + readonly isGlobalRule: boolean; + clearCookies(): void; + addCookie(aIsOptOut: boolean, aName: string, aValue: string, aHost: string, aPath: string, aExpiryRelative: i64, aUnsetValue: string, aIsSecure: boolean, aIsHttpOnly: boolean, aIsSession: boolean, aSameSite: i32, aSchemeMap: nsICookie.schemeType): void; + readonly clickRule: nsIClickRule; + addClickRule(aPresence: string, aSkipPresenceVisibilityCheck?: boolean, aRunContext?: nsIClickRule.RunContext, aHide?: string, aOptOut?: string, aOptIn?: string): void; + clearClickRule(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsICookieBannerService.idl + +} // global + +declare namespace nsICookieBannerService { + +enum Modes { + MODE_DISABLED = 0, + MODE_REJECT = 1, + MODE_REJECT_OR_ACCEPT = 2, + MODE_UNSET = 3, +} + +} + +declare global { + +interface nsICookieBannerService extends nsISupports, Enums<typeof nsICookieBannerService.Modes> { + readonly isEnabled: boolean; + readonly rules: nsICookieBannerRule[]; + resetRules(doImport?: boolean): void; + getCookiesForURI(aURI: nsIURI, aIsPrivateBrowsing: boolean): nsICookieRule[]; + getClickRulesForDomain(aDomain: string, aIsTopLevel: boolean): nsIClickRule[]; + insertRule(aRule: nsICookieBannerRule): void; + removeRule(aRule: nsICookieBannerRule): void; + hasRuleForBrowsingContextTree(aBrowsingContext: BrowsingContext): boolean; + getDomainPref(aTopLevelURI: nsIURI, aIsPrivate: boolean): nsICookieBannerService.Modes; + setDomainPref(aTopLevelURI: nsIURI, aMode: nsICookieBannerService.Modes, aIsPrivate: boolean): void; + setDomainPrefAndPersistInPrivateBrowsing(aTopLevelURI: nsIURI, aMode: nsICookieBannerService.Modes): void; + removeDomainPref(aTopLevelURI: nsIURI, aIsPrivate: boolean): void; + removeAllDomainPrefs(aIsPrivate: boolean): void; + shouldStopBannerClickingForSite(aSite: string, aIsTopLevel: boolean, aIsPrivate: boolean): boolean; + markSiteExecuted(aSite: string, aIsTopLevel: boolean, aIsPrivate: boolean): void; + removeExecutedRecordForSite(aSite: string, aIsPrivate: boolean): void; + removeAllExecutedRecords(aIsPrivate: boolean): void; + resetDomainTelemetryRecord(aDomain?: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/cookiebanners/nsICookieRule.idl + +interface nsICookieRule extends nsISupports { + readonly cookie: nsICookie; + readonly expiryRelative: i64; + readonly unsetValue: string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/crashes/nsICrashService.idl + +interface nsICrashService extends nsISupports { + readonly CRASH_TYPE_CRASH: 0; + readonly CRASH_TYPE_HANG: 1; + + addCrash(processType: i32, crashType: i32, id: string): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/finalizationwitness/nsIFinalizationWitnessService.idl + +interface nsIFinalizationWitnessService extends nsISupports { + make(aTopic: string, aString: string): any; +} + +// https://searchfox.org/mozilla-central/source/toolkit/modules/nsIBrowserWindowTracker.idl + +interface nsIVisibleTab extends nsISupports { + contentTitle: string; + browserId: i64; +} + +interface nsIBrowserWindowTracker extends nsISupports { + getAllVisibleTabs(): nsIVisibleTab[]; + getBrowserById(aBrowserId: u64): nsISupports; +} + +// https://searchfox.org/mozilla-central/source/toolkit/modules/nsIRegion.idl + +interface nsIRegion extends nsISupports { + readonly current: string; + readonly home: string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/processtools/nsIProcessToolsService.idl + +interface nsIProcessToolsService extends nsISupports { + kill(pid: u64): void; + crash(pid: u64): void; + readonly pid: u64; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/nsIFingerprintingWebCompatService.idl + +interface nsIFingerprintingOverride extends nsISupports { + readonly firstPartyDomain: string; + readonly thirdPartyDomain: string; + readonly overrides: string; +} + +interface nsIFingerprintingWebCompatService extends nsISupports { + init(): void; + shutdown(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/resistfingerprinting/nsIRFPService.idl + +interface nsIRFPService extends nsISupports { + setFingerprintingOverrides(aOverrides: nsIFingerprintingOverride[]): void; + getFingerprintingOverrides(aDomainKey: string): u64; + cleanAllOverrides(): void; + readonly enabledFingerprintingProtections: u64; + cleanAllRandomKeys(): void; + cleanRandomKeyByPrincipal(aPrincipal: nsIPrincipal): void; + cleanRandomKeyByDomain(aDomain: string): void; + cleanRandomKeyByHost(aHost: string, aPattern: string): void; + cleanRandomKeyByOriginAttributesPattern(aPattern: string): void; + testGenerateRandomKey(aChannel: nsIChannel): u8[]; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/search/nsISearchService.idl + +interface nsISearchSubmission extends nsISupports { + readonly postData: nsIInputStream; + readonly uri: nsIURI; +} + +interface nsISearchEngine extends nsISupports { + getSubmission(searchTerms: string, responseType?: string, purpose?: string): nsISearchSubmission; + searchTermFromResult(uri: nsIURI): string; + readonly searchUrlQueryParamName: string; + readonly searchUrlPublicSuffix: string; + supportsResponseType(responseType: string): boolean; + getIconURL(preferredWidth?: u16): Promise<any>; + speculativeConnect(options: any): void; + alias: string; + readonly aliases: string[]; + readonly description: string; + hidden: boolean; + hideOneOffButton: boolean; + readonly name: string; + readonly id: string; + readonly searchForm: string; + readonly telemetryId: string; + readonly identifier: string; + readonly isAppProvided: boolean; + readonly inMemory: boolean; + readonly isGeneralPurposeEngine: boolean; + readonly searchUrlDomain: string; + readonly clickUrl: string; +} + +interface nsISearchParseSubmissionResult extends nsISupports { + readonly engine: nsISearchEngine; + readonly terms: string; + readonly termsParameterName: string; +} + +interface nsISearchService extends nsISupports { + readonly ERROR_DOWNLOAD_FAILURE: 1; + readonly ERROR_DUPLICATE_ENGINE: 2; + readonly ERROR_ENGINE_CORRUPTED: 3; + readonly CHANGE_REASON_UNKNOWN: 0; + readonly CHANGE_REASON_USER: 1; + readonly CHANGE_REASON_USER_PRIVATE_SPLIT: 2; + readonly CHANGE_REASON_USER_SEARCHBAR: 3; + readonly CHANGE_REASON_USER_SEARCHBAR_CONTEXT: 4; + readonly CHANGE_REASON_ADDON_INSTALL: 5; + readonly CHANGE_REASON_ADDON_UNINSTALL: 6; + readonly CHANGE_REASON_CONFIG: 7; + readonly CHANGE_REASON_LOCALE: 8; + readonly CHANGE_REASON_REGION: 9; + readonly CHANGE_REASON_EXPERIMENT: 10; + readonly CHANGE_REASON_ENTERPRISE: 11; + readonly CHANGE_REASON_UITOUR: 12; + readonly CHANGE_REASON_ENGINE_UPDATE: 13; + + init(): Promise<any>; + readonly promiseInitialized: Promise<any>; + readonly isInitialized: boolean; + readonly hasSuccessfullyInitialized: boolean; + runBackgroundChecks(): Promise<any>; + resetToAppDefaultEngine(): Promise<any>; + addOpenSearchEngine(engineURL: string, iconURL: string): Promise<any>; + addUserEngine(name: string, url: string, alias?: string): Promise<any>; + addEnginesFromExtension(extension: any): Promise<any>; + restoreDefaultEngines(): void; + getEngineByAlias(alias: string): Promise<any>; + getEngineByName(aEngineName: string): nsISearchEngine; + getEngineById(aEngineId: string): nsISearchEngine; + getEngines(): Promise<any>; + getVisibleEngines(): Promise<any>; + getAppProvidedEngines(): Promise<any>; + getEnginesByExtensionID(extensionID: string): Promise<any>; + moveEngine(engine: nsISearchEngine, newIndex: i32): Promise<any>; + removeEngine(engine: nsISearchEngine): Promise<any>; + removeWebExtensionEngine(id: string): Promise<any>; + readonly appDefaultEngine: nsISearchEngine; + readonly appPrivateDefaultEngine: nsISearchEngine; + defaultEngine: nsISearchEngine; + getDefault(): Promise<any>; + setDefault(engine: nsISearchEngine, changeSource: u16): Promise<any>; + defaultPrivateEngine: nsISearchEngine; + getDefaultPrivate(): Promise<any>; + setDefaultPrivate(engine: nsISearchEngine, changeSource: u16): Promise<any>; + readonly separatePrivateDefaultUrlbarResultEnabled: boolean; + maybeSetAndOverrideDefault(extension: any): Promise<any>; + getDefaultEngineInfo(): any; + parseSubmissionURL(url: string): nsISearchParseSubmissionResult; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/shell/nsIToolkitShellService.idl + +interface nsIToolkitShellService extends nsISupports { + isDefaultApplication(): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/xulstore/nsIXULStore.idl + +interface nsIXULStore extends nsISupports { + persist(aNode: Node, attr: string): void; + setValue(doc: string, id: string, attr: string, value: string): void; + hasValue(doc: string, id: string, attr: string): boolean; + getValue(doc: string, id: string, attr: string): string; + removeValue(doc: string, id: string, attr: string): void; + removeDocument(doc: string): void; + getIDsEnumerator(doc: string): nsIStringEnumerator; + getAttributeEnumerator(doc: string, id: string): nsIStringEnumerator; +} + +// https://searchfox.org/mozilla-central/source/editor/txmgr/nsITransaction.idl + +interface nsITransaction extends nsISupports { + doTransaction(): void; + undoTransaction(): void; + redoTransaction(): void; + readonly isTransient: boolean; + merge(aTransaction: nsITransaction): boolean; +} + +// https://searchfox.org/mozilla-central/source/editor/txmgr/nsITransactionManager.idl + +interface nsITransactionManager extends nsISupports { + doTransaction(aTransaction: nsITransaction): void; + undoTransaction(): void; + redoTransaction(): void; + clear(): void; + clearUndoStack(): void; + clearRedoStack(): void; + beginBatch(aData: nsISupports): void; + endBatch(aAllowEmpty: boolean): void; + readonly numberOfUndoItems: i32; + readonly numberOfRedoItems: i32; + maxTransactionCount: i32; + batchTopUndo(): void; + removeTopUndo(): void; + peekUndoStack(): nsITransaction; + peekRedoStack(): nsITransaction; +} + +// https://searchfox.org/mozilla-central/source/editor/spellchecker/nsIInlineSpellChecker.idl + +interface nsIInlineSpellChecker extends nsISupports { + readonly spellChecker: nsIEditorSpellCheck; + init(aEditor: nsIEditor): void; + cleanup(aDestroyingFrames: boolean): void; + enableRealTimeSpell: boolean; + spellCheckRange(aSelection: Range): void; + getMisspelledWord(aNode: Node, aOffset: u32): Range; + replaceWord(aNode: Node, aOffset: u32, aNewword: string): void; + addWordToDictionary(aWord: string): void; + removeWordFromDictionary(aWord: string): void; + ignoreWord(aWord: string): void; + ignoreWords(aWordsToIgnore: string[]): void; + updateCurrentDictionary(): void; + readonly spellCheckPending: boolean; +} + +// https://searchfox.org/mozilla-central/source/intl/uconv/nsIScriptableUConv.idl + +interface nsIScriptableUnicodeConverter extends nsISupports { + ConvertFromUnicode(aSrc: string): string; + Finish(): string; + ConvertToUnicode(aSrc: string): string; + charset: string; + isInternal: boolean; +} + +// https://searchfox.org/mozilla-central/source/intl/uconv/nsITextToSubURI.idl + +interface nsITextToSubURI extends nsISupports { + ConvertAndEscape(charset: string, text: string): string; + UnEscapeAndConvert(charset: string, text: string): string; + unEscapeURIForUI(aURIFragment: string, aDontEscape?: boolean): string; + unEscapeNonAsciiURI(aCharset: string, aURIFragment: string): string; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/timermanager/nsIUpdateTimerManager.idl + +interface nsIUpdateTimerManager extends nsISupports { + registerTimer(id: string, callback: nsITimerCallback, interval: u32, skipFirst?: boolean): void; + unregisterTimer(id: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/mozapps/update/nsIUpdateService.idl + +interface nsIUpdatePatch extends nsISupports { + readonly type: string; + readonly URL: string; + finalURL: string; + readonly size: u32; + state: string; + errorCode: i32; + selected: boolean; + serialize(updates: Document): Element; +} + +interface nsIUpdate extends nsISupports { + readonly type: string; + readonly name: string; + readonly displayVersion: string; + readonly appVersion: string; + readonly previousAppVersion: string; + readonly buildID: string; + readonly detailsURL: string; + readonly serviceURL: string; + readonly channel: string; + readonly unsupported: boolean; + promptWaitTime: i64; + isCompleteUpdate: boolean; + installDate: i64; + statusText: string; + readonly selectedPatch: nsIUpdatePatch; + state: string; + errorCode: i32; + elevationFailure: boolean; + readonly patchCount: u32; + getPatchAt(index: u32): nsIUpdatePatch; + serialize(updates: Document): Element; +} + +interface nsIUpdateCheckResult extends nsISupports { + readonly checksAllowed: boolean; + readonly succeeded: boolean; + readonly request: any; + readonly updates: nsIUpdate[]; +} + +interface nsIUpdateCheck extends nsISupports { + readonly id: i32; + readonly result: Promise<any>; +} + +interface nsIUpdateChecker extends nsISupports { + readonly BACKGROUND_CHECK: 1; + readonly FOREGROUND_CHECK: 2; + + checkForUpdates(checkType: i32): nsIUpdateCheck; + getUpdateURL(checkType: i32): Promise<any>; + stopCheck(id: i32): void; + stopAllChecks(): void; +} + +interface nsIApplicationUpdateService extends nsISupports { + readonly STATE_IDLE: 1; + readonly STATE_DOWNLOADING: 2; + readonly STATE_STAGING: 4; + readonly STATE_PENDING: 5; + readonly STATE_SWAP: 6; + + checkForBackgroundUpdates(): boolean; + selectUpdate(updates: nsIUpdate[]): nsIUpdate; + addDownloadListener(listener: nsIRequestObserver): void; + removeDownloadListener(listener: nsIRequestObserver): void; + downloadUpdate(update: nsIUpdate): Promise<any>; + onCheckComplete(result: nsIUpdateCheckResult): Promise<any>; + stopDownload(): Promise<any>; + readonly disabled: boolean; + readonly canUsuallyCheckForUpdates: boolean; + readonly canCheckForUpdates: boolean; + readonly elevationRequired: boolean; + readonly canUsuallyApplyUpdates: boolean; + readonly canApplyUpdates: boolean; + readonly isOtherInstanceHandlingUpdates: boolean; + readonly canUsuallyStageUpdates: boolean; + readonly canStageUpdates: boolean; + readonly canUsuallyUseBits: boolean; + readonly canUseBits: boolean; + readonly manualUpdateOnly: boolean; + readonly isAppBaseDirWritable: boolean; + onlyDownloadUpdatesThisSession: boolean; + getStateName(state: i32): string; + readonly currentState: i32; + readonly stateTransition: Promise<any>; +} + +interface nsIUpdateProcessor extends nsISupports { + processUpdate(): void; + getServiceRegKeyExists(): boolean; + attemptAutomaticApplicationRestartWithLaunchArgs(argvExtra: string[]): i32; + waitForProcessExit(pid: u32, timeoutMS: u32): void; +} + +interface nsIUpdateSyncManager extends nsISupports { + isOtherInstanceRunning(): boolean; + resetLock(anAppFile?: nsIFile): void; +} + +interface nsIUpdateManager extends nsISupports { + getUpdateAt(index: i32): nsIUpdate; + getUpdateCount(): i32; + readyUpdate: nsIUpdate; + downloadingUpdate: nsIUpdate; + addUpdateToHistory(update: nsIUpdate): void; + saveUpdates(): void; + refreshUpdateStatus(): Promise<any>; + elevationOptedIn(): void; + cleanupDownloadingUpdate(): void; + cleanupReadyUpdate(): void; + doInstallCleanup(): Promise<any>; + doUninstallCleanup(): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsCURILoader.idl + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsIContentHandler.idl + +interface nsIContentHandler extends nsISupports { + handleContent(aContentType: string, aWindowContext: nsIInterfaceRequestor, aRequest: nsIRequest): void; +} + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsIDocumentLoader.idl + +interface nsIDocumentLoader extends nsISupports { + stop(): void; + readonly container: nsISupports; + readonly loadGroup: nsILoadGroup; + readonly documentChannel: nsIChannel; +} + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsITransfer.idl + +interface nsITransfer extends nsIWebProgressListener2 { + readonly DOWNLOAD_ACCEPTABLE: 0; + readonly DOWNLOAD_FORBIDDEN: 1; + readonly DOWNLOAD_POTENTIALLY_UNSAFE: 2; + + init(aSource: nsIURI, aSourceOriginalURI: nsIURI, aTarget: nsIURI, aDisplayName: string, aMIMEInfo: nsIMIMEInfo, startTime: PRTime, aTempFile: nsIFile, aCancelable: nsICancelable, aIsPrivate: boolean, aDownloadClassification: i32, aReferrerInfo: nsIReferrerInfo, aOpenDownloadsListOnStart?: boolean): void; + initWithBrowsingContext(aSource: nsIURI, aTarget: nsIURI, aDisplayName: string, aMIMEInfo: nsIMIMEInfo, startTime: PRTime, aTempFile: nsIFile, aCancelable: nsICancelable, aIsPrivate: boolean, aDownloadClassification: i32, aReferrerInfo: nsIReferrerInfo, aOpenDownloadsListOnStart: boolean, aBrowsingContext: BrowsingContext, aHandleInternally: boolean, aHttpChannel: nsIHttpChannel): void; + setSha256Hash(aHash: string): void; + setSignatureInfo(aSignatureInfo: u8[][][]): void; + setRedirects(aRedirects: nsIArray): void; +} + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsIURIContentListener.idl + +interface nsIURIContentListener extends nsISupports { + doContent(aContentType: string, aIsContentPreferred: boolean, aRequest: nsIRequest, aContentHandler: OutParam<nsIStreamListener>): boolean; + isPreferred(aContentType: string, aDesiredContentType: OutParam<string>): boolean; + canHandleContent(aContentType: string, aIsContentPreferred: boolean, aDesiredContentType: OutParam<string>): boolean; + loadCookie: nsISupports; + parentContentListener: nsIURIContentListener; +} + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsIURILoader.idl + +interface nsIURILoader extends nsISupports { + readonly IS_CONTENT_PREFERRED: 1; + readonly DONT_RETARGET: 2; + + registerContentListener(aContentListener: nsIURIContentListener): void; + unRegisterContentListener(aContentListener: nsIURIContentListener): void; + openURI(aChannel: nsIChannel, aFlags: u32, aWindowContext: nsIInterfaceRequestor): void; + openChannel(aChannel: nsIChannel, aFlags: u32, aWindowContext: nsIInterfaceRequestor): nsIStreamListener; + stop(aLoadCookie: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsIWebProgress.idl + +interface nsIWebProgress extends nsISupports { + readonly NOTIFY_STATE_REQUEST: 1; + readonly NOTIFY_STATE_DOCUMENT: 2; + readonly NOTIFY_STATE_NETWORK: 4; + readonly NOTIFY_STATE_WINDOW: 8; + readonly NOTIFY_STATE_ALL: 15; + readonly NOTIFY_PROGRESS: 16; + readonly NOTIFY_STATUS: 32; + readonly NOTIFY_SECURITY: 64; + readonly NOTIFY_LOCATION: 128; + readonly NOTIFY_REFRESH: 256; + readonly NOTIFY_CONTENT_BLOCKING: 512; + readonly NOTIFY_ALL: 1023; + + addProgressListener(aListener: nsIWebProgressListener, aNotifyMask: u32): void; + removeProgressListener(aListener: nsIWebProgressListener): void; + readonly browsingContext: BrowsingContext; + readonly DOMWindow: mozIDOMWindowProxy; + readonly isTopLevel: boolean; + readonly isLoadingDocument: boolean; + readonly loadType: u32; + target: nsIEventTarget; + readonly documentRequest: nsIRequest; +} + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsIWebProgressListener.idl + +interface nsIWebProgressListener extends nsISupports { + readonly STATE_START: 1; + readonly STATE_REDIRECTING: 2; + readonly STATE_TRANSFERRING: 4; + readonly STATE_NEGOTIATING: 8; + readonly STATE_STOP: 16; + readonly STATE_IS_REQUEST: 65536; + readonly STATE_IS_DOCUMENT: 131072; + readonly STATE_IS_NETWORK: 262144; + readonly STATE_IS_WINDOW: 524288; + readonly STATE_IS_REDIRECTED_DOCUMENT: 1048576; + readonly STATE_RESTORING: 16777216; + readonly STATE_IS_INSECURE: 4; + readonly STATE_IS_BROKEN: 1; + readonly STATE_IS_SECURE: 2; + readonly STATE_BLOCKED_MIXED_ACTIVE_CONTENT: 16; + readonly STATE_LOADED_MIXED_ACTIVE_CONTENT: 32; + readonly STATE_BLOCKED_MIXED_DISPLAY_CONTENT: 256; + readonly STATE_LOADED_MIXED_DISPLAY_CONTENT: 512; + readonly STATE_IDENTITY_EV_TOPLEVEL: 1048576; + readonly STATE_IDENTITY_ASSOCIATED: 2097152; + readonly STATE_USES_SSL_3: 16777216; + readonly STATE_USES_WEAK_CRYPTO: 33554432; + readonly STATE_CERT_USER_OVERRIDDEN: 67108864; + readonly STATE_BLOCKED_TRACKING_CONTENT: 4096; + readonly STATE_LOADED_LEVEL_1_TRACKING_CONTENT: 8192; + readonly STATE_LOADED_LEVEL_2_TRACKING_CONTENT: 1048576; + readonly STATE_BLOCKED_FINGERPRINTING_CONTENT: 64; + readonly STATE_LOADED_FINGERPRINTING_CONTENT: 1024; + readonly STATE_REPLACED_FINGERPRINTING_CONTENT: 134217728; + readonly STATE_ALLOWED_FINGERPRINTING_CONTENT: 512; + readonly STATE_BLOCKED_CRYPTOMINING_CONTENT: 2048; + readonly STATE_LOADED_CRYPTOMINING_CONTENT: 2097152; + readonly STATE_BLOCKED_UNSAFE_CONTENT: 16384; + readonly STATE_COOKIES_LOADED: 32768; + readonly STATE_COOKIES_LOADED_TRACKER: 262144; + readonly STATE_COOKIES_LOADED_SOCIALTRACKER: 524288; + readonly STATE_COOKIES_BLOCKED_BY_PERMISSION: 268435456; + readonly STATE_COOKIES_BLOCKED_TRACKER: 536870912; + readonly STATE_COOKIES_BLOCKED_SOCIALTRACKER: 16777216; + readonly STATE_COOKIES_BLOCKED_ALL: 1073741824; + readonly STATE_COOKIES_PARTITIONED_FOREIGN: 2147483648; + readonly STATE_COOKIES_BLOCKED_FOREIGN: 128; + readonly STATE_BLOCKED_SOCIALTRACKING_CONTENT: 65536; + readonly STATE_LOADED_SOCIALTRACKING_CONTENT: 131072; + readonly STATE_REPLACED_TRACKING_CONTENT: 16; + readonly STATE_ALLOWED_TRACKING_CONTENT: 32; + readonly STATE_BLOCKED_EMAILTRACKING_CONTENT: 4194304; + readonly STATE_LOADED_EMAILTRACKING_LEVEL_1_CONTENT: 8388608; + readonly STATE_LOADED_EMAILTRACKING_LEVEL_2_CONTENT: 256; + readonly STATE_ALLOWED_CANVAS_FINGERPRINTING: 33554432; + readonly STATE_ALLOWED_FONT_FINGERPRINTING: 67108864; + readonly STATE_BLOCKED_SUSPICIOUS_FINGERPRINTING: 4; + readonly STATE_HTTPS_ONLY_MODE_UPGRADED: 4194304; + readonly STATE_HTTPS_ONLY_MODE_UPGRADE_FAILED: 8388608; + readonly STATE_HTTPS_ONLY_MODE_UPGRADED_FIRST: 134217728; + readonly LOCATION_CHANGE_SAME_DOCUMENT: 1; + readonly LOCATION_CHANGE_ERROR_PAGE: 2; + readonly LOCATION_CHANGE_RELOAD: 4; + readonly LOCATION_CHANGE_HASHCHANGE: 8; + readonly LOCATION_CHANGE_SESSION_STORE: 16; + + onStateChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aStateFlags: u32, aStatus: nsresult): void; + onProgressChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aCurSelfProgress: i32, aMaxSelfProgress: i32, aCurTotalProgress: i32, aMaxTotalProgress: i32): void; + onLocationChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aLocation: nsIURI, aFlags?: u32): void; + onStatusChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aStatus: nsresult, aMessage: string): void; + onSecurityChange(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aState: u32): void; + onContentBlockingEvent(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aEvent: u32): void; +} + +// https://searchfox.org/mozilla-central/source/uriloader/base/nsIWebProgressListener2.idl + +interface nsIWebProgressListener2 extends nsIWebProgressListener { + onProgressChange64(aWebProgress: nsIWebProgress, aRequest: nsIRequest, aCurSelfProgress: i64, aMaxSelfProgress: i64, aCurTotalProgress: i64, aMaxTotalProgress: i64): void; + onRefreshAttempted(aWebProgress: nsIWebProgress, aRefreshURI: nsIURI, aMillis: u32, aSameURI: boolean): boolean; +} + +// https://searchfox.org/mozilla-central/source/netwerk/url-classifier/nsIChannelClassifierService.idl + +interface nsIUrlClassifierBlockedChannel extends nsISupports { + readonly TRACKING_PROTECTION: 0; + readonly SOCIAL_TRACKING_PROTECTION: 1; + readonly FINGERPRINTING_PROTECTION: 2; + readonly CRYPTOMINING_PROTECTION: 3; + + readonly reason: u8; + readonly tables: string; + readonly url: string; + readonly tabId: u64; + readonly channelId: u64; + readonly isPrivateBrowsing: boolean; + readonly topLevelUrl: string; + replace(): void; + allow(): void; +} + +interface nsIChannelClassifierService extends nsISupports { + addListener(aObserver: nsIObserver): void; + removeListener(aObserver: nsIObserver): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/url-classifier/nsIURIClassifier.idl + +type nsIURIClassifierCallback = Callable<{ + onClassifyComplete(aErrorCode: nsresult, aList: string, aProvider: string, aFullHash: string): void; +}> + +interface nsIURIClassifier extends nsISupports { + classify(aPrincipal: nsIPrincipal, aCallback: nsIURIClassifierCallback): boolean; + asyncClassifyLocalWithFeatures(aURI: nsIURI, aFeatures: nsIUrlClassifierFeature[], aListType: nsIUrlClassifierFeature.listType, aCallback: nsIUrlClassifierFeatureCallback): void; + getFeatureByName(aFeatureName: string): nsIUrlClassifierFeature; + getFeatureNames(): string[]; + createFeatureWithTables(aName: string, aBlocklistTables: string[], aEntitylistTables: string[]): nsIUrlClassifierFeature; + sendThreatHitReport(aChannel: nsIChannel, aProvider: string, aList: string, aFullHash: string): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/url-classifier/nsIUrlClassifierExceptionListService.idl + +type nsIUrlClassifierExceptionListObserver = Callable<{ + onExceptionListUpdate(aList: string): void; +}> + +interface nsIUrlClassifierExceptionListService extends nsISupports { + registerAndRunExceptionListObserver(aFeature: string, aPrefName: string, aObserver: nsIUrlClassifierExceptionListObserver): void; + unregisterExceptionListObserver(aFeature: string, aObserver: nsIUrlClassifierExceptionListObserver): void; + clear(): void; +} + +// https://searchfox.org/mozilla-central/source/netwerk/url-classifier/nsIUrlClassifierFeature.idl + +} // global + +declare namespace nsIUrlClassifierFeature { + +enum listType { + blocklist = 0, + entitylist = 1, +} + +enum URIType { + blocklistURI = 0, + entitylistURI = 1, + pairwiseEntitylistURI = 2, +} + +} + +declare global { + +interface nsIUrlClassifierFeature extends nsISupports, Enums<typeof nsIUrlClassifierFeature.listType & typeof nsIUrlClassifierFeature.URIType> { + readonly name: string; + readonly exceptionHostList: string; +} + +interface nsIUrlClassifierFeatureResult extends nsISupports { + readonly uri: nsIURI; + readonly feature: nsIUrlClassifierFeature; + readonly list: string; +} + +type nsIUrlClassifierFeatureCallback = Callable<{ + onClassifyComplete(aResults: nsIUrlClassifierFeatureResult[]): void; +}> + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/IUrlClassifierUITelemetry.idl + +interface IUrlClassifierUITelemetry extends nsISupports { + readonly WARNING_MALWARE_PAGE_TOP: 1; + readonly WARNING_MALWARE_PAGE_TOP_WHY_BLOCKED: 2; + readonly WARNING_MALWARE_PAGE_TOP_GET_ME_OUT_OF_HERE: 3; + readonly WARNING_MALWARE_PAGE_TOP_IGNORE_WARNING: 4; + readonly WARNING_MALWARE_PAGE_FRAME: 5; + readonly WARNING_MALWARE_PAGE_FRAME_WHY_BLOCKED: 6; + readonly WARNING_MALWARE_PAGE_FRAME_GET_ME_OUT_OF_HERE: 7; + readonly WARNING_MALWARE_PAGE_FRAME_IGNORE_WARNING: 8; + readonly WARNING_PHISHING_PAGE_TOP: 9; + readonly WARNING_PHISHING_PAGE_TOP_WHY_BLOCKED: 10; + readonly WARNING_PHISHING_PAGE_TOP_GET_ME_OUT_OF_HERE: 11; + readonly WARNING_PHISHING_PAGE_TOP_IGNORE_WARNING: 12; + readonly WARNING_PHISHING_PAGE_FRAME: 13; + readonly WARNING_PHISHING_PAGE_FRAME_WHY_BLOCKED: 14; + readonly WARNING_PHISHING_PAGE_FRAME_GET_ME_OUT_OF_HERE: 15; + readonly WARNING_PHISHING_PAGE_FRAME_IGNORE_WARNING: 16; + readonly WARNING_UNWANTED_PAGE_TOP: 17; + readonly WARNING_UNWANTED_PAGE_TOP_WHY_BLOCKED: 18; + readonly WARNING_UNWANTED_PAGE_TOP_GET_ME_OUT_OF_HERE: 19; + readonly WARNING_UNWANTED_PAGE_TOP_IGNORE_WARNING: 20; + readonly WARNING_UNWANTED_PAGE_FRAME: 21; + readonly WARNING_UNWANTED_PAGE_FRAME_WHY_BLOCKED: 22; + readonly WARNING_UNWANTED_PAGE_FRAME_GET_ME_OUT_OF_HERE: 23; + readonly WARNING_UNWANTED_PAGE_FRAME_IGNORE_WARNING: 24; + readonly WARNING_HARMFUL_PAGE_TOP: 25; + readonly WARNING_HARMFUL_PAGE_TOP_WHY_BLOCKED: 26; + readonly WARNING_HARMFUL_PAGE_TOP_GET_ME_OUT_OF_HERE: 27; + readonly WARNING_HARMFUL_PAGE_TOP_IGNORE_WARNING: 28; + readonly WARNING_HARMFUL_PAGE_FRAME: 29; + readonly WARNING_HARMFUL_PAGE_FRAME_WHY_BLOCKED: 30; + readonly WARNING_HARMFUL_PAGE_FRAME_GET_ME_OUT_OF_HERE: 31; + readonly WARNING_HARMFUL_PAGE_FRAME_IGNORE_WARNING: 32; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierDBService.idl + +type nsIUrlClassifierCallback = Callable<{ + handleEvent(value: string): void; +}> + +interface nsIUrlClassifierUpdateObserver extends nsISupports { + updateUrlRequested(url: string, table: string): void; + streamFinished(status: nsresult, delay: u32): void; + updateError(error: nsresult): void; + updateSuccess(requestedTimeout: u32): void; +} + +interface nsIUrlClassifierDBService extends nsISupports { + lookup(principal: nsIPrincipal, tables: string, c: nsIUrlClassifierCallback): void; + getTables(c: nsIUrlClassifierCallback): void; + setHashCompleter(tableName: string, completer: nsIUrlClassifierHashCompleter): void; + clearLastResults(): void; + beginUpdate(updater: nsIUrlClassifierUpdateObserver, tables: string): void; + beginStream(table: string): void; + updateStream(updateChunk: string): void; + finishStream(): void; + finishUpdate(): void; + cancelUpdate(): void; + resetDatabase(): void; + reloadDatabase(): void; + clearCache(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierHashCompleter.idl + +interface nsIFullHashMatch extends nsISupports { + readonly tableName: string; + readonly fullHash: string; + readonly cacheDuration: u32; +} + +interface nsIUrlClassifierHashCompleterCallback extends nsISupports { + completionV2(hash: string, table: string, chunkId: u32): void; + completionV4(partialHash: string, table: string, negativeCacheDuration: u32, fullHashes: nsIArray): void; + completionFinished(status: nsresult): void; +} + +interface nsIUrlClassifierHashCompleter extends nsISupports { + complete(partialHash: string, gethashUrl: string, tableName: string, callback: nsIUrlClassifierHashCompleterCallback): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierInfo.idl + +interface nsIUrlClassifierPositiveCacheEntry extends nsISupports { + readonly fullhash: string; + readonly expiry: i64; +} + +interface nsIUrlClassifierCacheEntry extends nsISupports { + readonly prefix: string; + readonly expiry: i64; + readonly matches: nsIArray; +} + +interface nsIUrlClassifierCacheInfo extends nsISupports { + readonly table: string; + readonly entries: nsIArray; +} + +type nsIUrlClassifierGetCacheCallback = Callable<{ + onGetCacheComplete(info: nsIUrlClassifierCacheInfo): void; +}> + +interface nsIUrlClassifierInfo extends nsISupports { + getCacheInfo(table: string, callback: nsIUrlClassifierGetCacheCallback): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierPrefixSet.idl + +interface nsIUrlClassifierPrefixSet extends nsISupports { + init(aName: string): void; + setPrefixes(aPrefixes: u32[], aLength: u32): void; + getPrefixes(aCount: OutParam<u32>): OutParam<u32[]>; + contains(aPrefix: u32): boolean; + isEmpty(): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierRemoteSettingsService.idl + +interface nsIUrlClassifierRemoteSettingsService extends nsISupports { + fetchList(aPayload: string, aListener: nsIStreamListener): void; + clear(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierStreamUpdater.idl + +interface nsIUrlClassifierStreamUpdater extends nsISupports { + downloadUpdates(aRequestTables: string, aRequestPayload: string, aIsPostRequest: boolean, aUpdateUrl: string, aSuccessCallback: nsIUrlClassifierCallback, aUpdateErrorCallback: nsIUrlClassifierCallback, aDownloadErrorCallback: nsIUrlClassifierCallback): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlClassifierUtils.idl + +interface nsIUrlClassifierParseFindFullHashCallback extends nsISupports { + onCompleteHashFound(aCompleteHash: string, aTableNames: string, aPerHashCacheDuration: u32): void; + onResponseParsed(aMinWaitDuration: u32, aNegCacheDuration: u32): void; +} + +interface nsIUrlClassifierUtils extends nsISupports { + getKeyForURI(uri: nsIURI): string; + getProvider(tableName: string): string; + getTelemetryProvider(tableName: string): string; + getProtocolVersion(provider: string): string; + convertThreatTypeToListNames(threatType: u32): string; + convertListNameToThreatType(listName: string): u32; + makeUpdateRequestV4(aListNames: string[], aStatesBase64: string[]): string; + makeFindFullHashRequestV4(aListNames: string[], aListStatesBase64: string[], aPrefixes: string[]): string; + makeThreatHitReport(aChannel: nsIChannel, aListName: string, aHashBase64: string): string; + parseFindFullHashResponseV4(aResponse: string, aCallback: nsIUrlClassifierParseFindFullHashCallback): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/url-classifier/nsIUrlListManager.idl + +interface nsIUrlListManager extends nsISupports { + getGethashUrl(tableName: string): string; + getUpdateUrl(tableName: string): string; + registerTable(tableName: string, providerName: string, updateUrl: string, gethashUrl: string): boolean; + unregisterTable(tableName: string): void; + enableUpdate(tableName: string): void; + disableAllUpdates(): void; + disableUpdate(tableName: string): void; + maybeToggleUpdateChecking(): void; + checkForUpdates(updateUrl: string): boolean; + forceUpdates(tableNames: string): boolean; + getBackOffTime(provider: string): u64; + isRegistered(): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/urlformatter/nsIURLFormatter.idl + +interface nsIURLFormatter extends nsISupports { + formatURL(aFormat: string): string; + formatURLPref(aPref: string): string; + trimSensitiveURLs(aMsg: string): string; +} + +// https://searchfox.org/mozilla-central/source/ipc/glue/test/utility_process_xpcom/nsIUtilityProcessTest.idl + +interface nsIUtilityProcessTest extends nsISupports { + startProcess(actorsToAdd?: string[]): Promise<any>; + untilChildProcessDead(pid: u32): Promise<any>; + noteIntentionalCrash(pid: u32): void; + stopProcess(utilityActorName?: string): void; + testTelemetryProbes(): void; +} + +// https://searchfox.org/mozilla-central/source/dom/webbrowserpersist/nsIWebBrowserPersist.idl + +interface nsIWebBrowserPersist extends nsICancelable { + readonly PERSIST_FLAGS_NONE: 0; + readonly PERSIST_FLAGS_FROM_CACHE: 1; + readonly PERSIST_FLAGS_BYPASS_CACHE: 2; + readonly PERSIST_FLAGS_IGNORE_REDIRECTED_DATA: 4; + readonly PERSIST_FLAGS_IGNORE_IFRAMES: 8; + readonly PERSIST_FLAGS_NO_CONVERSION: 16; + readonly PERSIST_FLAGS_REPLACE_EXISTING_FILES: 32; + readonly PERSIST_FLAGS_NO_BASE_TAG_MODIFICATIONS: 64; + readonly PERSIST_FLAGS_FIXUP_ORIGINAL_DOM: 128; + readonly PERSIST_FLAGS_FIXUP_LINKS_TO_DESTINATION: 256; + readonly PERSIST_FLAGS_DONT_FIXUP_LINKS: 512; + readonly PERSIST_FLAGS_SERIALIZE_OUTPUT: 1024; + readonly PERSIST_FLAGS_DONT_CHANGE_FILENAMES: 2048; + readonly PERSIST_FLAGS_FAIL_ON_BROKEN_LINKS: 4096; + readonly PERSIST_FLAGS_CLEANUP_ON_FAILURE: 8192; + readonly PERSIST_FLAGS_AUTODETECT_APPLY_CONVERSION: 16384; + readonly PERSIST_FLAGS_APPEND_TO_FILE: 32768; + readonly PERSIST_STATE_READY: 1; + readonly PERSIST_STATE_SAVING: 2; + readonly PERSIST_STATE_FINISHED: 3; + readonly ENCODE_FLAGS_SELECTION_ONLY: 1; + readonly ENCODE_FLAGS_FORMATTED: 2; + readonly ENCODE_FLAGS_RAW: 4; + readonly ENCODE_FLAGS_BODY_ONLY: 8; + readonly ENCODE_FLAGS_PREFORMATTED: 16; + readonly ENCODE_FLAGS_WRAP: 32; + readonly ENCODE_FLAGS_FORMAT_FLOWED: 64; + readonly ENCODE_FLAGS_ABSOLUTE_LINKS: 128; + readonly ENCODE_FLAGS_CR_LINEBREAKS: 512; + readonly ENCODE_FLAGS_LF_LINEBREAKS: 1024; + readonly ENCODE_FLAGS_NOSCRIPT_CONTENT: 2048; + readonly ENCODE_FLAGS_NOFRAMES_CONTENT: 4096; + readonly ENCODE_FLAGS_ENCODE_BASIC_ENTITIES: 8192; + + persistFlags: u32; + readonly currentState: u32; + readonly result: nsresult; + progressListener: nsIWebProgressListener; + saveURI(aURI: nsIURI, aTriggeringPrincipal: nsIPrincipal, aCacheKey: u32, aReferrerInfo: nsIReferrerInfo, aCookieJarSettings: nsICookieJarSettings, aPostData: nsIInputStream, aExtraHeaders: string, aFile: nsISupports, aContentPolicyType: nsContentPolicyType, aIsPrivate: boolean): void; + saveChannel(aChannel: nsIChannel, aFile: nsISupports): void; + saveDocument(aDocument: nsISupports, aFile: nsISupports, aDataPath: nsISupports, aOutputContentType: string, aEncodingFlags: u32, aWrapColumn: u32): void; + cancelSave(): void; +} + +// https://searchfox.org/mozilla-central/source/dom/webbrowserpersist/nsIWebBrowserPersistDocument.idl + +interface nsIWebBrowserPersistURIMap extends nsISupports { + readonly numMappedURIs: u32; + getURIMapping(aIndex: u32, aMapFrom: OutParam<string>, aMapTo: OutParam<string>): void; + readonly targetBaseURI: string; +} + +interface nsIWebBrowserPersistDocument extends nsISupports { + readonly isClosed: boolean; + readonly isPrivate: boolean; + readonly documentURI: string; + readonly baseURI: string; + readonly contentType: string; + readonly characterSet: string; + readonly title: string; + readonly referrerInfo: nsIReferrerInfo; + readonly cookieJarSettings: nsICookieJarSettings; + readonly contentDisposition: string; + readonly postData: nsIInputStream; + readonly principal: nsIPrincipal; + readonly cacheKey: u32; + persistFlags: u32; + readResources(aVisitor: nsIWebBrowserPersistResourceVisitor): void; + writeContent(aStream: nsIOutputStream, aURIMap: nsIWebBrowserPersistURIMap, aRequestedContentType: string, aEncoderFlags: u32, aWrapColumn: u32, aCompletion: nsIWebBrowserPersistWriteCompletion): void; +} + +interface nsIWebBrowserPersistResourceVisitor extends nsISupports { + visitResource(aDocument: nsIWebBrowserPersistDocument, aURI: string, aContentPolicyType: nsContentPolicyType): void; + visitDocument(aDocument: nsIWebBrowserPersistDocument, aSubDocument: nsIWebBrowserPersistDocument): void; + visitBrowsingContext(aDocument: nsIWebBrowserPersistDocument, aContext: BrowsingContext): void; + endVisit(aDocument: nsIWebBrowserPersistDocument, aStatus: nsresult): void; +} + +type nsIWebBrowserPersistWriteCompletion = Callable<{ + onFinish(aDocument: nsIWebBrowserPersistDocument, aStream: nsIOutputStream, aContentType: string, aStatus: nsresult): void; +}> + +interface nsIWebBrowserPersistDocumentReceiver extends nsISupports { + onDocumentReady(aDocument: nsIWebBrowserPersistDocument): void; + onError(aFailure: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/browser/nsIWebBrowser.idl + +interface nsIWebBrowser extends nsISupports { + containerWindow: nsIWebBrowserChrome; + readonly contentDOMWindow: mozIDOMWindowProxy; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/browser/nsIWebBrowserChrome.idl + +interface nsIWebBrowserChrome extends nsISupports { + readonly CHROME_DEFAULT: 1; + readonly CHROME_WINDOW_BORDERS: 2; + readonly CHROME_WINDOW_CLOSE: 4; + readonly CHROME_WINDOW_RESIZE: 8; + readonly CHROME_MENUBAR: 16; + readonly CHROME_TOOLBAR: 32; + readonly CHROME_LOCATIONBAR: 64; + readonly CHROME_STATUSBAR: 128; + readonly CHROME_PERSONAL_TOOLBAR: 256; + readonly CHROME_SCROLLBARS: 512; + readonly CHROME_TITLEBAR: 1024; + readonly CHROME_EXTRA: 2048; + readonly CHROME_ALL: 4094; + readonly CHROME_WINDOW_MINIMIZE: 16384; + readonly CHROME_ALERT: 32768; + readonly CHROME_PRIVATE_WINDOW: 65536; + readonly CHROME_NON_PRIVATE_WINDOW: 131072; + readonly CHROME_PRIVATE_LIFETIME: 262144; + readonly CHROME_ALWAYS_ON_TOP: 524288; + readonly CHROME_REMOTE_WINDOW: 1048576; + readonly CHROME_FISSION_WINDOW: 2097152; + readonly CHROME_SUPPRESS_ANIMATION: 16777216; + readonly CHROME_WINDOW_RAISED: 33554432; + readonly CHROME_WINDOW_LOWERED: 67108864; + readonly CHROME_CENTER_SCREEN: 134217728; + readonly CHROME_DEPENDENT: 268435456; + readonly CHROME_MODAL: 536870912; + readonly CHROME_OPENAS_DIALOG: 1073741824; + readonly CHROME_OPENAS_CHROME: 2147483648; + readonly CHROME_MINIMAL_POPUP: 18126; + + setLinkStatus(status: string): void; + chromeFlags: u32; + showAsModal(): void; + isWindowModal(): boolean; + blur(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/browser/nsIWebBrowserChromeFocus.idl + +interface nsIWebBrowserChromeFocus extends nsISupports { + focusNextElement(aForDocumentNavigation: boolean): void; + focusPrevElement(aForDocumentNavigation: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/browser/nsIWebBrowserPrint.idl + +interface nsIWebBrowserPrint extends nsISupports { + readonly PRINTPREVIEW_GOTO_PAGENUM: 0; + readonly PRINTPREVIEW_PREV_PAGE: 1; + readonly PRINTPREVIEW_NEXT_PAGE: 2; + readonly PRINTPREVIEW_HOME: 3; + readonly PRINTPREVIEW_END: 4; + + readonly doingPrint: boolean; + readonly doingPrintPreview: boolean; + readonly rawNumPages: i32; + readonly printPreviewNumPages: i32; + readonly printPreviewCurrentPageNumber: i32; + printPreviewScrollToPage(aNavType: i16, aPageNum: i32): void; + exitPrintPreview(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/extensions/storage/mozIExtensionStorageArea.idl + +interface mozIExtensionStorageArea extends nsISupports { + readonly SYNC_QUOTA_BYTES: 102400; + readonly SYNC_QUOTA_BYTES_PER_ITEM: 8192; + readonly SYNC_MAX_ITEMS: 512; + + set(extensionId: string, json: string, callback: mozIExtensionStorageCallback): void; + get(extensionId: string, key: string, callback: mozIExtensionStorageCallback): void; + remove(extensionId: string, key: string, callback: mozIExtensionStorageCallback): void; + clear(extensionId: string, callback: mozIExtensionStorageCallback): void; + getBytesInUse(extensionId: string, keys: string, callback: mozIExtensionStorageCallback): void; + takeMigrationInfo(callback: mozIExtensionStorageCallback): void; +} + +interface mozIConfigurableExtensionStorageArea extends nsISupports { + configure(databaseFile: nsIFile, kintoFile: nsIFile): void; + teardown(callback: mozIExtensionStorageCallback): void; +} + +interface mozISyncedExtensionStorageArea extends nsISupports { + fetchPendingSyncChanges(callback: mozIExtensionStorageCallback): void; +} + +interface mozIExtensionStorageListener extends nsISupports { + onChanged(extensionId: string, json: string): void; +} + +interface mozIExtensionStorageCallback extends nsISupports { + handleSuccess(result: nsIVariant): void; + handleError(code: nsresult, message: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/extensions/extIWebNavigation.idl + +interface extIWebNavigation extends nsISupports { + onDocumentChange(bc: BrowsingContext, transitionData: any, location: nsIURI): void; + onHistoryChange(bc: BrowsingContext, transitionData: any, location: nsIURI, isHistoryStateUpdated: boolean, isReferenceFragmentUpdated: boolean): void; + onStateChange(bc: BrowsingContext, requestURI: nsIURI, status: nsresult, stateFlags: u32): void; + onCreatedNavigationTarget(bc: BrowsingContext, sourceBC: BrowsingContext, url: string): void; + onDOMContentLoaded(bc: BrowsingContext, documentURI: nsIURI): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/extensions/mozIExtensionAPIRequestHandling.idl + +interface mozIExtensionServiceWorkerInfo extends nsISupports { + readonly principal: nsIPrincipal; + readonly scriptURL: string; + readonly clientInfoId: string; + readonly descriptorId: u64; +} + +} // global + +declare namespace mozIExtensionListenerCallOptions { + +enum APIObjectType { + NONE = 0, + RUNTIME_PORT = 1, +} + +enum CallbackType { + CALLBACK_NONE = 0, + CALLBACK_SEND_RESPONSE = 1, +} + +} + +declare global { + +interface mozIExtensionListenerCallOptions extends nsISupports, Enums<typeof mozIExtensionListenerCallOptions.APIObjectType & typeof mozIExtensionListenerCallOptions.CallbackType> { + readonly apiObjectType: mozIExtensionListenerCallOptions.APIObjectType; + readonly apiObjectDescriptor: any; + readonly apiObjectPrepended: boolean; + callbackType: mozIExtensionListenerCallOptions.CallbackType; +} + +interface mozIExtensionEventListener extends nsISupports { + callListener(args: any[], listenerCallOptions?: mozIExtensionListenerCallOptions): Promise<any>; +} + +} // global + +declare namespace mozIExtensionAPIRequest { + +enum RequestType { + CALL_FUNCTION = 0, + CALL_FUNCTION_NO_RETURN = 1, + CALL_FUNCTION_ASYNC = 2, + ADD_LISTENER = 3, + REMOVE_LISTENER = 4, + GET_PROPERTY = 5, +} + +} + +declare global { + +interface mozIExtensionAPIRequest extends nsISupports, Enums<typeof mozIExtensionAPIRequest.RequestType> { + toString(): string; + readonly requestType: string; + readonly apiNamespace: string; + readonly apiName: string; + readonly apiObjectType: string; + readonly apiObjectId: string; + readonly args: any; + normalizedArgs: any; + readonly callerSavedFrame: any; + readonly serviceWorkerInfo: mozIExtensionServiceWorkerInfo; + readonly eventListener: mozIExtensionEventListener; +} + +} // global + +declare namespace mozIExtensionAPIRequestResult { + +enum ResultType { + RETURN_VALUE = 0, + EXTENSION_ERROR = 1, +} + +} + +declare global { + +interface mozIExtensionAPIRequestResult extends nsISupports, Enums<typeof mozIExtensionAPIRequestResult.ResultType> { + readonly type: mozIExtensionAPIRequestResult.ResultType; + readonly value: any; +} + +interface mozIExtensionAPIRequestHandler extends nsISupports { + handleAPIRequest(extension: nsISupports, apiRequest: mozIExtensionAPIRequest): OutParam<mozIExtensionAPIRequestResult>; + initExtensionWorker(extension: nsISupports, serviceWorkerInfo: mozIExtensionServiceWorkerInfo): void; + onExtensionWorkerLoaded(extension: nsISupports, serviceWorkerDescriptorId: u64): void; + onExtensionWorkerDestroyed(extension: nsISupports, serviceWorkerDescriptorId: u64): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/extensions/mozIExtensionProcessScript.idl + +interface mozIExtensionProcessScript extends nsISupports { + preloadContentScript(contentScript: nsISupports): void; + loadContentScript(contentScript: WebExtensionContentScript, window: mozIDOMWindow): Promise<any>; + initExtensionDocument(extension: nsISupports, doc: Document, privileged: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/dom/media/webvtt/nsIWebVTTListener.idl + +interface nsIWebVTTListener extends nsISupports { + onCue(cue: any): void; + onRegion(region: any): void; + onParsingError(errorCode: i32): void; +} + +// https://searchfox.org/mozilla-central/source/dom/media/webvtt/nsIWebVTTParserWrapper.idl + +interface nsIWebVTTParserWrapper extends nsISupports { + loadParser(window: mozIDOMWindow): void; + parse(data: string): void; + flush(): void; + watch(callback: nsIWebVTTListener): void; + cancel(): void; + convertCueToDOMTree(window: mozIDOMWindow, cue: nsISupports): DocumentFragment; + processCues(window: mozIDOMWindow, cues: nsIVariant, overlay: nsISupports, controls: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIAppShell.idl + +// https://searchfox.org/mozilla-central/source/widget/nsIBaseWindow.idl + +interface nsIBaseWindow extends nsISupports { + readonly eRepaint: 1; + readonly eDelayResize: 2; + + destroy(): void; + setPosition(x: i32, y: i32): void; + setPositionDesktopPix(x: i32, y: i32): void; + getPosition(x: OutParam<i32>, y: OutParam<i32>): void; + setSize(cx: i32, cy: i32, fRepaint: boolean): void; + getSize(cx: OutParam<i32>, cy: OutParam<i32>): void; + setPositionAndSize(x: i32, y: i32, cx: i32, cy: i32, flags: u32): void; + getPositionAndSize(x: OutParam<i32>, y: OutParam<i32>, cx: OutParam<i32>, cy: OutParam<i32>): void; + repaint(force: boolean): void; + parentNativeWindow: nativeWindow; + readonly nativeHandle: string; + visibility: boolean; + enabled: boolean; + readonly devicePixelsPerDesktopPixel: double; + title: string; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIBidiKeyboard.idl + +interface nsIBidiKeyboard extends nsISupports { + reset(): void; + isLangRTL(): boolean; + readonly haveBidiKeyboards: boolean; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIClipboard.idl + +interface nsIAsyncSetClipboardData extends nsISupports { + setData(aTransferable: nsITransferable, aOwner?: nsIClipboardOwner): void; + abort(aReason: nsresult): void; +} + +type nsIAsyncClipboardRequestCallback = Callable<{ + onComplete(aResult: nsresult): void; +}> + +interface nsIAsyncGetClipboardData extends nsISupports { + readonly valid: boolean; + readonly flavorList: string[]; + getData(aTransferable: nsITransferable, aCallback: nsIAsyncClipboardRequestCallback): void; +} + +interface nsIAsyncClipboardGetCallback extends nsISupports { + onSuccess(aAsyncGetClipboardData: nsIAsyncGetClipboardData): void; + onError(aResult: nsresult): void; +} + +interface nsIClipboard extends nsISupports { + readonly kSelectionClipboard: 0; + readonly kGlobalClipboard: 1; + readonly kFindClipboard: 2; + readonly kSelectionCache: 3; + + setData(aTransferable: nsITransferable, anOwner: nsIClipboardOwner, aWhichClipboard: i32): void; + asyncSetData(aWhichClipboard: i32, aCallback?: nsIAsyncClipboardRequestCallback): nsIAsyncSetClipboardData; + getData(aTransferable: nsITransferable, aWhichClipboard: i32, aRequestingWindowContext?: WindowContext): void; + asyncGetData(aFlavorList: string[], aWhichClipboard: i32, aRequestingWindowContext: WindowContext, aRequestingPrincipal: nsIPrincipal, aCallback: nsIAsyncClipboardGetCallback): void; + getDataSnapshotSync(aFlavorList: string[], aWhichClipboard: i32, aRequestingWindowContext?: WindowContext): nsIAsyncGetClipboardData; + emptyClipboard(aWhichClipboard: i32): void; + hasDataMatchingFlavors(aFlavorList: string[], aWhichClipboard: i32): boolean; + isClipboardTypeSupported(aWhichClipboard: i32): boolean; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIClipboardHelper.idl + +} // global + +declare namespace nsIClipboardHelper { + +enum SensitiveData { + NotSensitive = 0, + Sensitive = 1, +} + +} + +declare global { + +interface nsIClipboardHelper extends nsISupports, Enums<typeof nsIClipboardHelper.SensitiveData> { + copyStringToClipboard(aString: string, aClipboardID: i32, aSensitive?: nsIClipboardHelper.SensitiveData): void; + copyString(aString: string, aSensitive?: nsIClipboardHelper.SensitiveData): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIClipboardOwner.idl + +interface nsIClipboardOwner extends nsISupports { + LosingOwnership(aTransferable: nsITransferable): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIColorPicker.idl + +interface nsIColorPickerShownCallback extends nsISupports { + update(color: string): void; + done(color: string): void; +} + +interface nsIColorPicker extends nsISupports { + init(parent: mozIDOMWindowProxy, title: string, initialColor: string, defaultColors: string[]): void; + open(aColorPickerShownCallback: nsIColorPickerShownCallback): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIDisplayInfo.idl + +interface nsIDisplayInfo extends nsISupports { + readonly id: i32; + readonly connected: boolean; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIDragService.idl + +interface nsIDragService extends nsISupports { + readonly DRAGDROP_ACTION_NONE: 0; + readonly DRAGDROP_ACTION_COPY: 1; + readonly DRAGDROP_ACTION_MOVE: 2; + readonly DRAGDROP_ACTION_LINK: 4; + readonly DRAGDROP_ACTION_UNINITIALIZED: 64; + + invokeDragSession(aDOMNode: Node, aPrincipal: nsIPrincipal, aCsp: nsIContentSecurityPolicy, aCookieJarSettings: nsICookieJarSettings, aTransferables: nsIArray, aActionType: u32, aContentPolicyType?: nsContentPolicyType): void; + getCurrentSession(): nsIDragSession; + startDragSession(): void; + startDragSessionForTests(aAllowedEffect: u32): void; + endDragSession(aDoneDrag: boolean, aKeyModifiers?: u32): void; + suppress(): void; + unsuppress(): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIDragSession.idl + +interface nsIDragSession extends nsISupports { + canDrop: boolean; + onlyChromeDrop: boolean; + dragAction: u32; + readonly numDropItems: u32; + sourceWindowContext: WindowContext; + sourceTopWindowContext: WindowContext; + readonly sourceNode: Node; + triggeringPrincipal: nsIPrincipal; + csp: nsIContentSecurityPolicy; + dataTransfer: DataTransfer; + getData(aTransferable: nsITransferable, aItemIndex: u32): void; + isDataFlavorSupported(aDataFlavor: string): boolean; + userCancelled(): void; + dragEventDispatchedToChildProcess(): void; + updateDragEffect(): void; + updateDragImage(aImage: Node, aImageX: i32, aImageY: i32): void; + setDragEndPointForTests(aScreenX: i32, aScreenY: i32): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIFilePicker.idl + +} // global + +declare namespace nsIFilePicker { + +enum Mode { + modeOpen = 0, + modeSave = 1, + modeGetFolder = 2, + modeOpenMultiple = 3, +} + +enum ResultCode { + returnOK = 0, + returnCancel = 1, + returnReplace = 2, +} + +enum CaptureTarget { + captureNone = 0, + captureDefault = 1, + captureUser = 2, + captureEnv = 3, +} + +} + +declare global { + +interface nsIFilePicker extends nsISupports, Enums<typeof nsIFilePicker.Mode & typeof nsIFilePicker.ResultCode & typeof nsIFilePicker.CaptureTarget> { + readonly filterAll: 1; + readonly filterHTML: 2; + readonly filterText: 4; + readonly filterImages: 8; + readonly filterXML: 16; + readonly filterXUL: 32; + readonly filterApps: 64; + readonly filterAllowURLs: 128; + readonly filterAudio: 256; + readonly filterVideo: 512; + readonly filterPDF: 1024; + + init(browsingContext: BrowsingContext, title: string, mode: nsIFilePicker.Mode): void; + isModeSupported(mode: nsIFilePicker.Mode): Promise<any>; + appendFilters(filterMask: i32): void; + appendFilter(title: string, filter: string): void; + appendRawFilter(filter: string): void; + defaultString: string; + defaultExtension: string; + filterIndex: i32; + displayDirectory: nsIFile; + displaySpecialDirectory: string; + readonly file: nsIFile; + readonly fileURL: nsIURI; + readonly files: nsISimpleEnumerator; + readonly domFileOrDirectory: nsISupports; + readonly domFileOrDirectoryEnumerator: nsISimpleEnumerator; + addToRecentDocs: boolean; + open(aFilePickerShownCallback: nsIFilePickerShownCallback): void; + close(): void; + readonly mode: nsIFilePicker.Mode; + okButtonLabel: string; + capture: nsIFilePicker.CaptureTarget; +} + +type nsIFilePickerShownCallback = Callable<{ + done(aResult: nsIFilePicker.ResultCode): void; +}> + +// https://searchfox.org/mozilla-central/source/widget/nsIFormatConverter.idl + +interface nsIFormatConverter extends nsISupports { + getInputDataFlavors(): string[]; + getOutputDataFlavors(): string[]; + canConvert(aFromDataFlavor: string, aToDataFlavor: string): boolean; + convert(aFromDataFlavor: string, aFromData: nsISupports, aToDataFlavor: string, aToData: OutParam<nsISupports>): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIGfxInfo.idl + +} // global + +declare namespace nsIGfxInfo { + +enum FontVisibilityDeviceDetermination { + Unassigned = 0, + Unknown_Platform = 1, + Windows_Platform = 2, + MacOS_Platform = 3, + Android_Unknown_Release_Version = 4, + Android_Unknown_Peloton = 5, + Android_Unknown_vbox = 6, + Android_Unknown_mitv = 7, + Android_Chromebook = 8, + Android_Amazon = 9, + Android_sub_9 = 10, + Android_9_11 = 11, + Android_12_plus = 12, + Linux_Unknown = 13, + Linux_Ubuntu_any = 14, + Linux_Ubuntu_20 = 15, + Linux_Ubuntu_22 = 16, + Linux_Fedora_any = 17, + Linux_Fedora_38 = 18, + Linux_Fedora_39 = 19, +} + +} + +declare global { + +interface nsIGfxInfo extends nsISupports, Enums<typeof nsIGfxInfo.FontVisibilityDeviceDetermination> { + readonly FEATURE_DIRECT2D: 1; + readonly FEATURE_DIRECT3D_9_LAYERS: 2; + readonly FEATURE_DIRECT3D_10_LAYERS: 3; + readonly FEATURE_DIRECT3D_10_1_LAYERS: 4; + readonly FEATURE_OPENGL_LAYERS: 5; + readonly FEATURE_WEBGL_OPENGL: 6; + readonly FEATURE_WEBGL_ANGLE: 7; + readonly UNUSED_FEATURE_WEBGL_MSAA: 8; + readonly FEATURE_STAGEFRIGHT: 9; + readonly FEATURE_WEBRTC_HW_ACCELERATION_H264: 10; + readonly FEATURE_DIRECT3D_11_LAYERS: 11; + readonly FEATURE_HARDWARE_VIDEO_DECODING: 12; + readonly FEATURE_DIRECT3D_11_ANGLE: 13; + readonly FEATURE_WEBRTC_HW_ACCELERATION_ENCODE: 14; + readonly FEATURE_WEBRTC_HW_ACCELERATION_DECODE: 15; + readonly FEATURE_CANVAS2D_ACCELERATION: 16; + readonly FEATURE_VP8_HW_DECODE: 17; + readonly FEATURE_VP9_HW_DECODE: 18; + readonly FEATURE_DX_INTEROP2: 19; + readonly FEATURE_GPU_PROCESS: 20; + readonly FEATURE_WEBGL2: 21; + readonly FEATURE_D3D11_KEYED_MUTEX: 22; + readonly FEATURE_WEBRENDER: 23; + readonly FEATURE_DX_NV12: 24; + readonly FEATURE_DX_P010: 25; + readonly FEATURE_DX_P016: 26; + readonly FEATURE_GL_SWIZZLE: 27; + readonly FEATURE_WEBRENDER_COMPOSITOR: 28; + readonly FEATURE_WEBRENDER_SCISSORED_CACHE_CLEARS: 29; + readonly FEATURE_ALLOW_WEBGL_OUT_OF_PROCESS: 30; + readonly FEATURE_THREADSAFE_GL: 31; + readonly FEATURE_WEBRENDER_OPTIMIZED_SHADERS: 32; + readonly FEATURE_X11_EGL: 33; + readonly FEATURE_DMABUF: 34; + readonly FEATURE_WEBRENDER_SHADER_CACHE: 35; + readonly FEATURE_WEBRENDER_PARTIAL_PRESENT: 36; + readonly FEATURE_WEBGPU: 37; + readonly FEATURE_VIDEO_OVERLAY: 38; + readonly FEATURE_HW_DECODED_VIDEO_ZERO_COPY: 39; + readonly FEATURE_DMABUF_SURFACE_EXPORT: 40; + readonly FEATURE_REUSE_DECODER_DEVICE: 41; + readonly FEATURE_BACKDROP_FILTER: 42; + readonly FEATURE_ACCELERATED_CANVAS2D: 43; + readonly FEATURE_H264_HW_DECODE: 44; + readonly FEATURE_AV1_HW_DECODE: 45; + readonly FEATURE_VIDEO_SOFTWARE_OVERLAY: 46; + readonly FEATURE_WEBGL_USE_HARDWARE: 47; + readonly FEATURE_OVERLAY_VP_AUTO_HDR: 48; + readonly FEATURE_OVERLAY_VP_SUPER_RESOLUTION: 49; + readonly FEATURE_MAX_VALUE: 49; + readonly FEATURE_STATUS_OK: 1; + readonly FEATURE_STATUS_UNKNOWN: 2; + readonly FEATURE_BLOCKED_DRIVER_VERSION: 3; + readonly FEATURE_BLOCKED_DEVICE: 4; + readonly FEATURE_DISCOURAGED: 5; + readonly FEATURE_BLOCKED_OS_VERSION: 6; + readonly FEATURE_BLOCKED_MISMATCHED_VERSION: 7; + readonly FEATURE_DENIED: 8; + readonly FEATURE_ALLOW_ALWAYS: 9; + readonly FEATURE_ALLOW_QUALIFIED: 10; + readonly FEATURE_BLOCKED_PLATFORM_TEST: 11; + + readonly D2DEnabled: boolean; + readonly DWriteEnabled: boolean; + readonly EmbeddedInFirefoxReality: boolean; + readonly AzureCanvasBackend: string; + readonly AzureContentBackend: string; + readonly usingGPUProcess: boolean; + readonly hasBattery: boolean; + readonly DWriteVersion: string; + readonly cleartypeParameters: string; + readonly windowProtocol: string; + readonly testType: string; + readonly ContentBackend: string; + readonly isHeadless: boolean; + readonly TargetFrameRate: u32; + readonly CodecSupportInfo: string; + readonly fontVisibilityDetermination: nsIGfxInfo.FontVisibilityDeviceDetermination; + readonly fontVisibilityDeterminationStr: string; + readonly adapterDescription: string; + readonly adapterDescription2: string; + readonly adapterDriver: string; + readonly adapterDriver2: string; + readonly adapterVendorID: string; + readonly adapterVendorID2: string; + readonly adapterDeviceID: string; + readonly adapterDeviceID2: string; + readonly adapterSubsysID: string; + readonly adapterSubsysID2: string; + readonly adapterRAM: u32; + readonly adapterRAM2: u32; + readonly adapterDriverVendor: string; + readonly adapterDriverVendor2: string; + readonly adapterDriverVersion: string; + readonly adapterDriverVersion2: string; + readonly adapterDriverDate: string; + readonly adapterDriverDate2: string; + readonly isGPU2Active: boolean; + readonly drmRenderDevice: string; + getMonitors(): any; + getFailures(indices: OutParam<i32[]>): string[]; + getFeatureStatus(aFeature: i32, aFailureId?: OutParam<string>): i32; + getFeatureSuggestedDriverVersion(aFeature: i32): string; + getInfo(): any; + getFeatureLog(): any; + getFeatures(): any; + getActiveCrashGuards(): any; + controlGPUProcessForXPCShell(aEnable: boolean): boolean; + killGPUProcessForTests(): void; + crashGPUProcessForTests(): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIGfxInfoDebug.idl + +interface nsIGfxInfoDebug extends nsISupports { + spoofVendorID(aVendorID: string): void; + spoofDeviceID(aDeviceID: string): void; + spoofDriverVersion(aDriverVersion: string): void; + spoofOSVersion(aVersion: u32): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIJumpListBuilder.idl + +interface nsIJumpListBuilder extends nsISupports { + obtainAndCacheFavicon(faviconURL: nsIURI): string; + isAvailable(): Promise<any>; + checkForRemovals(): Promise<any>; + populateJumpList(aTaskDescriptions: any[], aCustomTitle: string, aCustomDescriptions: any[]): Promise<any>; + clearJumpList(): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/widget/nsILegacyJumpListBuilder.idl + +type nsILegacyJumpListCommittedCallback = Callable<{ + done(result: boolean): void; +}> + +interface nsILegacyJumpListBuilder extends nsISupports { + readonly JUMPLIST_CATEGORY_TASKS: 0; + readonly JUMPLIST_CATEGORY_RECENT: 1; + readonly JUMPLIST_CATEGORY_FREQUENT: 2; + readonly JUMPLIST_CATEGORY_CUSTOMLIST: 3; + + readonly available: i16; + readonly isListCommitted: boolean; + readonly maxListItems: i16; + initListBuild(): Promise<any>; + addListToBuild(aCatType: i16, items?: nsIArray, catName?: string): boolean; + abortListBuild(): void; + commitListBuild(callback?: nsILegacyJumpListCommittedCallback): void; + deleteActiveList(): boolean; + setAppUserModelID(aAppUserModelId: string): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsILegacyJumpListItem.idl + +interface nsILegacyJumpListItem extends nsISupports { + readonly JUMPLIST_ITEM_EMPTY: 0; + readonly JUMPLIST_ITEM_SEPARATOR: 1; + readonly JUMPLIST_ITEM_LINK: 2; + readonly JUMPLIST_ITEM_SHORTCUT: 3; + + readonly type: i16; + equals(item: nsILegacyJumpListItem): boolean; +} + +interface nsILegacyJumpListSeparator extends nsILegacyJumpListItem { +} + +interface nsILegacyJumpListLink extends nsILegacyJumpListItem { + uri: nsIURI; + uriTitle: string; +} + +interface nsILegacyJumpListShortcut extends nsILegacyJumpListItem { + app: nsILocalHandlerApp; + iconIndex: i32; + faviconPageUri: nsIURI; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIPaper.idl + +interface nsIPaper extends nsISupports { + readonly id: string; + readonly name: string; + readonly width: double; + readonly height: double; + readonly unwriteableMargin: Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIPaperMargin.idl + +interface nsIPaperMargin extends nsISupports { + readonly top: double; + readonly right: double; + readonly bottom: double; + readonly left: double; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIPrintDialogService.idl + +interface nsIPrintDialogService extends nsISupports { + init(): void; + showPrintDialog(aParent: mozIDOMWindowProxy, aHaveSelection: boolean, aPrintSettings: nsIPrintSettings): void; + showPageSetupDialog(aParent: mozIDOMWindowProxy, aPrintSettings: nsIPrintSettings): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIPrintSettings.idl + +} // global + +declare namespace nsIPrintSettings { + +enum OutputDestinationType { + kOutputDestinationPrinter = 0, + kOutputDestinationFile = 1, + kOutputDestinationStream = 2, +} + +} + +declare global { + +interface nsIPrintSettings extends nsISupports, Enums<typeof nsIPrintSettings.OutputDestinationType> { + readonly kInitSaveHeaderLeft: 2; + readonly kInitSaveHeaderCenter: 4; + readonly kInitSaveHeaderRight: 8; + readonly kInitSaveFooterLeft: 16; + readonly kInitSaveFooterCenter: 32; + readonly kInitSaveFooterRight: 64; + readonly kInitSaveBGColors: 128; + readonly kInitSaveBGImages: 256; + readonly kInitSavePaperSize: 512; + readonly kInitSaveDuplex: 2048; + readonly kInitSaveUnwriteableMargins: 16384; + readonly kInitSaveEdges: 32768; + readonly kInitSaveReversed: 65536; + readonly kInitSaveInColor: 131072; + readonly kInitSaveOrientation: 262144; + readonly kInitSavePrinterName: 1048576; + readonly kInitSavePrintToFile: 2097152; + readonly kInitSaveToFileName: 4194304; + readonly kInitSavePageDelay: 8388608; + readonly kInitSaveMargins: 16777216; + readonly kInitSaveShrinkToFit: 134217728; + readonly kInitSaveScaling: 268435456; + readonly kInitSaveAll: 4294967295; + readonly kGlobalSettings: 134447614; + readonly kPrintDialogPersistSettings: 428313598; + readonly kJustLeft: 0; + readonly kJustCenter: 1; + readonly kJustRight: 2; + readonly kPaperSizeInches: 0; + readonly kPaperSizeMillimeters: 1; + readonly kPortraitOrientation: 0; + readonly kLandscapeOrientation: 1; + readonly kOutputFormatNative: 0; + readonly kOutputFormatPDF: 2; + readonly kDuplexNone: 0; + readonly kDuplexFlipOnLongEdge: 1; + readonly kDuplexFlipOnShortEdge: 2; + + GetEffectivePageSize(aWidth: OutParam<double>, aHeight: OutParam<double>): void; + clone(): nsIPrintSettings; + assign(aPS: nsIPrintSettings): void; + equivalentTo(aPrintSettings: nsIPrintSettings): boolean; + edgeTop: double; + edgeLeft: double; + edgeBottom: double; + edgeRight: double; + marginTop: double; + marginLeft: double; + marginBottom: double; + marginRight: double; + unwriteableMarginTop: double; + unwriteableMarginLeft: double; + unwriteableMarginBottom: double; + unwriteableMarginRight: double; + scaling: double; + printBGColors: boolean; + printBGImages: boolean; + honorPageRuleMargins: boolean; + usePageRuleSizeAsPaperSize: boolean; + ignoreUnwriteableMargins: boolean; + showMarginGuides: boolean; + printSelectionOnly: boolean; + title: string; + docURL: string; + headerStrLeft: string; + headerStrCenter: string; + headerStrRight: string; + footerStrLeft: string; + footerStrCenter: string; + footerStrRight: string; + printSilent: boolean; + shrinkToFit: boolean; + paperId: string; + paperWidth: double; + paperHeight: double; + paperSizeUnit: i16; + printReversed: boolean; + printInColor: boolean; + orientation: i32; + numCopies: i32; + numPagesPerSheet: i32; + outputDestination: nsIPrintSettings.OutputDestinationType; + outputFormat: i16; + printerName: string; + toFileName: string; + outputStream: nsIOutputStream; + printPageDelay: i32; + resolution: i32; + duplex: i32; + isInitializedFromPrinter: boolean; + isInitializedFromPrefs: boolean; + pageRanges: i32[]; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIPrintSettingsService.idl + +interface nsIPrintSettingsService extends nsISupports { + createNewPrintSettings(): nsIPrintSettings; + readonly lastUsedPrinterName: string; + initPrintSettingsFromPrinter(aPrinterName: string, aPrintSettings: nsIPrintSettings): void; + initPrintSettingsFromPrefs(aPrintSettings: nsIPrintSettings, aUsePrinterNamePrefix: boolean, aFlags: u32): void; + maybeSavePrintSettingsToPrefs(aPrintSettings: nsIPrintSettings, aFlags: u32): void; + maybeSaveLastUsedPrinterNameToPrefs(aPrinterName: string): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIPrintSettingsWin.idl + +// https://searchfox.org/mozilla-central/source/widget/nsIPrinter.idl + +interface nsIPrinterInfo extends nsISupports { + readonly paperList: nsIPaper[]; + readonly defaultSettings: nsIPrintSettings; +} + +interface nsIPrinter extends nsISupports { + readonly name: string; + readonly systemName: string; + readonly printerInfo: Promise<any>; + copyFromWithValidation(aSettingsToCopyFrom: nsIPrintSettings): Promise<any>; + readonly supportsDuplex: Promise<any>; + readonly supportsColor: Promise<any>; + readonly supportsMonochrome: Promise<any>; + readonly supportsCollation: Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIPrinterList.idl + +interface nsIPrinterList extends nsISupports { + initPrintSettingsFromPrinter(aPrinterName: string, aPrintSettings: nsIPrintSettings): void; + readonly systemDefaultPrinterName: string; + getPrinterByName(aPrinterName: string): Promise<any>; + getPrinterBySystemName(aPrinterName: string): Promise<any>; + getNamedOrDefaultPrinter(aPrinterName: string): Promise<any>; + readonly printers: Promise<any>; + readonly fallbackPaperList: Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIScreen.idl + +interface nsIScreen extends nsISupports { + GetRect(left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void; + GetAvailRect(left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void; + GetRectDisplayPix(left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void; + GetAvailRectDisplayPix(left: OutParam<i32>, top: OutParam<i32>, width: OutParam<i32>, height: OutParam<i32>): void; + readonly pixelDepth: i32; + readonly colorDepth: i32; + readonly contentsScaleFactor: double; + readonly defaultCSSScaleFactor: double; + readonly dpi: float; + readonly refreshRate: i32; + readonly isPseudoDisplay: boolean; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIScreenManager.idl + +interface nsIScreenManager extends nsISupports { + screenForRect(left: i32, top: i32, width: i32, height: i32): nsIScreen; + readonly primaryScreen: nsIScreen; + readonly totalScreenPixels: i64; +} + +// https://searchfox.org/mozilla-central/source/widget/nsISharePicker.idl + +interface nsISharePicker extends nsISupports { + init(openerWindow: mozIDOMWindowProxy): void; + readonly openerWindow: mozIDOMWindowProxy; + share(title: string, text: string, url: nsIURI): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/widget/nsISound.idl + +interface nsISound extends nsISupports { + readonly EVENT_NEW_MAIL_RECEIVED: 0; + readonly EVENT_ALERT_DIALOG_OPEN: 1; + readonly EVENT_CONFIRM_DIALOG_OPEN: 2; + readonly EVENT_PROMPT_DIALOG_OPEN: 3; + readonly EVENT_SELECT_DIALOG_OPEN: 4; + readonly EVENT_MENU_EXECUTE: 5; + readonly EVENT_MENU_POPUP: 6; + readonly EVENT_EDITOR_MAX_LEN: 7; + + play(aURL: nsIURL): void; + beep(): void; + init(): void; + playEventSound(aEventId: u32): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsISystemStatusBar.idl + +interface nsISystemStatusBar extends nsISupports { + addItem(aMenuElement: Element): void; + removeItem(aMenuElement: Element): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsITaskbarOverlayIconController.idl + +interface nsITaskbarOverlayIconController extends nsISupports { + setOverlayIcon(statusIcon: imgIContainer, statusDescription: string): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreview.idl + +interface nsITaskbarPreview extends nsISupports { + controller: nsITaskbarPreviewController; + tooltip: string; + visible: boolean; + active: boolean; + invalidate(): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreviewButton.idl + +interface nsITaskbarPreviewButton extends nsISupports { + tooltip: string; + dismissOnClick: boolean; + hasBorder: boolean; + disabled: boolean; + image: imgIContainer; + visible: boolean; +} + +// https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreviewController.idl + +type nsITaskbarPreviewCallback = Callable<{ + done(aCanvas: nsISupports, aDrawBorder: boolean): void; +}> + +interface nsITaskbarPreviewController extends nsISupports { + readonly width: u32; + readonly height: u32; + readonly thumbnailAspectRatio: float; + requestPreview(aCallback: nsITaskbarPreviewCallback): void; + requestThumbnail(aCallback: nsITaskbarPreviewCallback, width: u32, height: u32): void; + onClose(): void; + onActivate(): boolean; + onClick(button: nsITaskbarPreviewButton): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsITaskbarProgress.idl + +interface nsITaskbarProgress extends nsISupports { + readonly STATE_NO_PROGRESS: 0; + readonly STATE_INDETERMINATE: 1; + readonly STATE_NORMAL: 2; + readonly STATE_ERROR: 3; + readonly STATE_PAUSED: 4; + + setProgressState(state: nsTaskbarProgressState, currentValue?: u64, maxValue?: u64): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsITaskbarTabPreview.idl + +interface nsITaskbarTabPreview extends nsITaskbarPreview { + title: string; + icon: imgIContainer; + move(aNext: nsITaskbarTabPreview): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsITaskbarWindowPreview.idl + +interface nsITaskbarWindowPreview extends nsITaskbarPreview { + readonly NUM_TOOLBAR_BUTTONS: 7; + + getButton(index: u32): nsITaskbarPreviewButton; + enableCustomDrawing: boolean; +} + +// https://searchfox.org/mozilla-central/source/widget/nsITransferable.idl + +interface nsIFlavorDataProvider extends nsISupports { + getFlavorData(aTransferable: nsITransferable, aFlavor: string, aData: OutParam<nsISupports>): void; +} + +interface nsITransferable extends nsISupports { + init(aContext: nsILoadContext): void; + flavorsTransferableCanExport(): string[]; + getTransferData(aFlavor: string, aData: OutParam<nsISupports>): void; + getAnyTransferData(aFlavor: OutParam<string>, aData: OutParam<nsISupports>): void; + flavorsTransferableCanImport(): string[]; + setTransferData(aFlavor: string, aData: nsISupports): void; + clearAllData(): void; + addDataFlavor(aDataFlavor: string): void; + removeDataFlavor(aDataFlavor: string): void; + converter: nsIFormatConverter; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIUserIdleService.idl + +interface nsIUserIdleService extends nsISupports { + readonly idleTime: u32; + addIdleObserver(observer: nsIObserver, time: u32): void; + removeIdleObserver(observer: nsIObserver, time: u32): void; + disabled: boolean; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIUserIdleServiceInternal.idl + +interface nsIUserIdleServiceInternal extends nsIUserIdleService { + resetIdleTimeOut(idleDeltaInMS: u32): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIWinTaskbar.idl + +interface nsIWinTaskbar extends nsISupports { + readonly available: boolean; + readonly defaultGroupId: string; + readonly defaultPrivateGroupId: string; + createTaskbarTabPreview(shell: nsIDocShell, controller: nsITaskbarPreviewController): nsITaskbarTabPreview; + getTaskbarWindowPreview(shell: nsIDocShell): nsITaskbarWindowPreview; + getTaskbarProgress(shell: nsIDocShell): nsITaskbarProgress; + getOverlayIconController(shell: nsIDocShell): nsITaskbarOverlayIconController; + createLegacyJumpListBuilder(aPrivateBrowsing: boolean): nsILegacyJumpListBuilder; + createJumpListBuilder(aPrivateBrowsing: boolean): nsIJumpListBuilder; + getGroupIdForWindow(aParent: mozIDOMWindow): string; + setGroupIdForWindow(aParent: mozIDOMWindow, aIdentifier: string): void; +} + +// https://searchfox.org/mozilla-central/source/widget/nsIWindowsUIUtils.idl + +interface nsIWindowsUIUtils extends nsISupports { + readonly systemSmallIconSize: i32; + readonly systemLargeIconSize: i32; + setWindowIcon(aWindow: mozIDOMWindowProxy, aSmallIcon: imgIContainer, aLargeIcon: imgIContainer): void; + setWindowIconFromExe(aWindow: mozIDOMWindowProxy, aExe: string, aIndex: u16): void; + setWindowIconNoData(aWindow: mozIDOMWindowProxy): void; + readonly inTabletMode: boolean; + shareUrl(shareTitle: string, urlToShare: string): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowcreator/nsIWindowCreator.idl + +interface nsIWindowCreator extends nsISupports { + createChromeWindow(parent: nsIWebBrowserChrome, chromeFlags: u32, aOpenWindowInfo: nsIOpenWindowInfo, cancel: OutParam<boolean>): nsIWebBrowserChrome; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowcreator/nsIWindowProvider.idl + +interface nsIWindowProvider extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl + +interface nsIWindowsPackageManager extends nsISupports { + findUserInstalledPackages(prefix: string[]): string[]; + getInstalledDate(): u64; + campaignId(): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIDialogParamBlock.idl + +interface nsIDialogParamBlock extends nsISupports { + GetInt(inIndex: i32): i32; + SetInt(inIndex: i32, inInt: i32): void; + SetNumberStrings(inNumStrings: i32): void; + GetString(inIndex: i32): string; + SetString(inIndex: i32, inString: string): void; + objects: nsIMutableArray; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIOpenWindowInfo.idl + +interface nsIOpenWindowInfo extends nsISupports { + readonly parent: BrowsingContext; + readonly isRemote: boolean; + readonly forceNoOpener: boolean; + readonly isForPrinting: boolean; + readonly isForWindowDotPrint: boolean; + readonly originAttributes: any; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIPromptCollection.idl + +interface nsIPromptCollection extends nsISupports { + asyncBeforeUnloadCheck(aBrowsingContext: BrowsingContext): Promise<any>; + confirmRepost(aBrowsingContext: BrowsingContext): boolean; + confirmFolderUpload(aBrowsingContext: BrowsingContext, aDirectoryName: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIPromptFactory.idl + +interface nsIPromptFactory extends nsISupports { + getPrompt<T extends nsIID>(aParent: mozIDOMWindowProxy, iid: T): nsQIResult<T>; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIPromptService.idl + +interface nsIPromptService extends nsISupports { + readonly BUTTON_POS_0: 1; + readonly BUTTON_POS_1: 256; + readonly BUTTON_POS_2: 65536; + readonly BUTTON_TITLE_OK: 1; + readonly BUTTON_TITLE_CANCEL: 2; + readonly BUTTON_TITLE_YES: 3; + readonly BUTTON_TITLE_NO: 4; + readonly BUTTON_TITLE_SAVE: 5; + readonly BUTTON_TITLE_DONT_SAVE: 6; + readonly BUTTON_TITLE_REVERT: 7; + readonly BUTTON_TITLE_IS_STRING: 127; + readonly BUTTON_POS_0_DEFAULT: 0; + readonly BUTTON_POS_1_DEFAULT: 16777216; + readonly BUTTON_POS_2_DEFAULT: 33554432; + readonly BUTTON_DELAY_ENABLE: 67108864; + readonly SHOW_SPINNER: 134217728; + readonly STD_OK_CANCEL_BUTTONS: 513; + readonly STD_YES_NO_BUTTONS: 1027; + readonly MODAL_TYPE_CONTENT: 1; + readonly MODAL_TYPE_TAB: 2; + readonly MODAL_TYPE_WINDOW: 3; + readonly MODAL_TYPE_INTERNAL_WINDOW: 4; + + alert(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string): void; + alertBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string): void; + asyncAlert(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string): Promise<any>; + alertCheck(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): void; + alertCheckBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): void; + asyncAlertCheck(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: boolean): Promise<any>; + confirm(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string): boolean; + confirmBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string): boolean; + asyncConfirm(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string): Promise<any>; + confirmCheck(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): boolean; + confirmCheckBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): boolean; + asyncConfirmCheck(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aCheckMsg: string, aCheckState: boolean): Promise<any>; + confirmEx(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aButtonFlags: u32, aButton0Title: string, aButton1Title: string, aButton2Title: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): i32; + confirmExBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aButtonFlags: u32, aButton0Title: string, aButton1Title: string, aButton2Title: string, aCheckMsg: string, aCheckState: InOutParam<boolean>): i32; + asyncConfirmEx(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aButtonFlags: u32, aButton0Title: string, aButton1Title: string, aButton2Title: string, aCheckMsg: string, aCheckState: boolean, aExtraArgs?: any): Promise<any>; + prompt(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aValue: InOutParam<string>, aCheckMsg: string, aCheckState: InOutParam<boolean>): boolean; + promptBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aValue: InOutParam<string>, aCheckMsg: string, aCheckState: InOutParam<boolean>): boolean; + asyncPrompt(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aValue: string, aCheckMsg: string, aCheckState: boolean): Promise<any>; + promptUsernameAndPassword(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aUsername: InOutParam<string>, aPassword: InOutParam<string>): boolean; + promptUsernameAndPasswordBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aUsername: InOutParam<string>, aPassword: InOutParam<string>): boolean; + asyncPromptUsernameAndPassword(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aUsername: string, aPassword: string): Promise<any>; + promptPassword(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aPassword: InOutParam<string>): boolean; + promptPasswordBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aPassword: InOutParam<string>): boolean; + asyncPromptPassword(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aPassword: string): Promise<any>; + select(aParent: mozIDOMWindowProxy, aDialogTitle: string, aText: string, aSelectList: string[], aOutSelection: OutParam<i32>): boolean; + selectBC(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aSelectList: string[], aOutSelection: OutParam<i32>): boolean; + asyncSelect(aBrowsingContext: BrowsingContext, modalType: u32, aDialogTitle: string, aText: string, aSelectList: string[]): Promise<any>; + promptAuth(aParent: mozIDOMWindowProxy, aChannel: nsIChannel, level: u32, authInfo: nsIAuthInformation): boolean; + promptAuthBC(aBrowsingContext: BrowsingContext, modalType: u32, aChannel: nsIChannel, level: u32, authInfo: nsIAuthInformation): boolean; + asyncPromptAuth(aBrowsingContext: BrowsingContext, modalType: u32, aChannel: nsIChannel, level: u32, authInfo: nsIAuthInformation): Promise<any>; + confirmUserPaste(aWindow: WindowGlobalParent): Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsIWindowWatcher.idl + +interface nsIWindowWatcher extends nsISupports { + openWindow(aParent: mozIDOMWindowProxy, aUrl: string, aName: string, aFeatures: string, aArguments: nsISupports): mozIDOMWindowProxy; + registerNotification(aObserver: nsIObserver): void; + unregisterNotification(aObserver: nsIObserver): void; + getWindowEnumerator(): nsISimpleEnumerator; + getNewPrompter(aParent: mozIDOMWindowProxy): nsIPrompt; + getNewAuthPrompter(aParent: mozIDOMWindowProxy): nsIAuthPrompt; + setWindowCreator(creator: nsIWindowCreator): void; + hasWindowCreator(): boolean; + getChromeForWindow(aWindow: mozIDOMWindowProxy): nsIWebBrowserChrome; + getWindowByName(aTargetName: string): mozIDOMWindowProxy; + readonly activeWindow: mozIDOMWindowProxy; +} + +// https://searchfox.org/mozilla-central/source/toolkit/components/windowwatcher/nsPIWindowWatcher.idl + +// https://searchfox.org/mozilla-central/source/xpcom/tests/NotXPCOMTest.idl + +interface nsIScriptableOK extends nsISupports { + method1(): void; +} + +interface nsIScriptableWithNotXPCOM extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIAvailableMemoryWatcherBase.idl + +interface nsITabUnloader extends nsISupports { + unloadTabAsync(): void; +} + +interface nsIAvailableMemoryWatcherBase extends nsISupports { + registerTabUnloader(aTabUnloader: nsITabUnloader): void; + onUnloadAttemptCompleted(aResult: nsresult): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIConsoleListener.idl + +type nsIConsoleListener = Callable<{ + observe(aMessage: nsIConsoleMessage): void; +}> + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIConsoleMessage.idl + +interface nsIConsoleMessage extends nsISupports { + readonly debug: 0; + readonly info: 1; + readonly warn: 2; + readonly error: 3; + + readonly logLevel: u32; + readonly timeStamp: i64; + readonly microSecondTimeStamp: i64; + readonly message: string; + isForwardedFromContentProcess: boolean; + toString(): string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIConsoleService.idl + +} // global + +declare namespace nsIConsoleService { + +enum OutputMode { + SuppressLog = 0, + OutputToLog = 1, +} + +} + +declare global { + +interface nsIConsoleService extends nsISupports, Enums<typeof nsIConsoleService.OutputMode> { + logMessage(message: nsIConsoleMessage): void; + callFunctionAndLogException(targetGlobal: any, func: any): any; + logMessageWithMode(message: nsIConsoleMessage, mode: nsIConsoleService.OutputMode): void; + logStringMessage(message: string): void; + getMessageArray(): nsIConsoleMessage[]; + registerListener(listener: nsIConsoleListener): void; + unregisterListener(listener: nsIConsoleListener): void; + reset(): void; + resetWindow(windowInnerId: u64): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsICycleCollectorListener.idl + +interface nsICycleCollectorHandler extends nsISupports { + noteRefCountedObject(aAddress: string, aRefCount: u32, aObjectDescription: string): void; + noteGCedObject(aAddress: string, aMarked: boolean, aObjectDescription: string, aCompartmentAddress: string): void; + noteEdge(aFromAddress: string, aToAddress: string, aEdgeName: string): void; + describeRoot(aAddress: string, aKnownEdges: u32): void; + describeGarbage(aAddress: string): void; +} + +interface nsICycleCollectorLogSink extends nsISupports { + closeGCLog(): void; + closeCCLog(): void; + filenameIdentifier: string; + processIdentifier: i32; + readonly gcLog: nsIFile; + readonly ccLog: nsIFile; +} + +interface nsICycleCollectorListener extends nsISupports { + allTraces(): nsICycleCollectorListener; + readonly wantAllTraces: boolean; + disableLog: boolean; + logSink: nsICycleCollectorLogSink; + wantAfterProcessing: boolean; + processNext(aHandler: nsICycleCollectorHandler): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIDebug2.idl + +interface nsIDebug2 extends nsISupports { + readonly isDebugBuild: boolean; + readonly assertionCount: i32; + readonly isDebuggerAttached: boolean; + assertion(aStr: string, aExpr: string, aFile: string, aLine: i32): void; + warning(aStr: string, aFile: string, aLine: i32): void; + break(aFile: string, aLine: i32): void; + abort(aFile: string, aLine: i32): void; + rustPanic(aMessage: string): void; + rustLog(aTarget: string, aMessage: string): void; + crashWithOOM(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIException.idl + +interface nsIStackFrame extends nsISupports { + readonly filename: string; + readonly name: string; + readonly sourceId: i32; + readonly lineNumber: i32; + readonly columnNumber: i32; + readonly sourceLine: string; + readonly asyncCause: string; + readonly asyncCaller: nsIStackFrame; + readonly caller: nsIStackFrame; + readonly formattedStack: string; + readonly nativeSavedFrame: any; + toString(): string; +} + +interface nsIException extends nsISupports { +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIInterfaceRequestor.idl + +interface nsIInterfaceRequestor extends nsISupports { + getInterface<T extends nsIID>(uuid: T): nsQIResult<T>; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIMemoryInfoDumper.idl + +type nsIFinishDumpingCallback = Callable<{ + callback(data: nsISupports): void; +}> + +interface nsIDumpGCAndCCLogsCallback extends nsISupports { + onDump(aGCLog: nsIFile, aCCLog: nsIFile, aIsParent: boolean): void; + onFinish(): void; +} + +interface nsIMemoryInfoDumper extends nsISupports { + dumpMemoryReportsToNamedFile(aFilename: string, aFinishDumping: nsIFinishDumpingCallback, aFinishDumpingData: nsISupports, aAnonymize: boolean, aMinimizeMemoryUsage: boolean): void; + dumpMemoryInfoToTempDir(aIdentifier: string, aAnonymize: boolean, aMinimizeMemoryUsage: boolean): void; + dumpGCAndCCLogsToFile(aIdentifier: string, aDumpAllTraces: boolean, aDumpChildProcesses: boolean, aCallback: nsIDumpGCAndCCLogsCallback): void; + dumpGCAndCCLogsToSink(aDumpAllTraces: boolean, aSink: nsICycleCollectorLogSink): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIMemoryReporter.idl + +type nsIHandleReportCallback = Callable<{ + callback(process: string, path: string, kind: i32, units: i32, amount: i64, description: string, data: nsISupports): void; +}> + +interface nsIMemoryReporter extends nsISupports { + readonly KIND_NONHEAP: 0; + readonly KIND_HEAP: 1; + readonly KIND_OTHER: 2; + readonly UNITS_BYTES: 0; + readonly UNITS_COUNT: 1; + readonly UNITS_COUNT_CUMULATIVE: 2; + readonly UNITS_PERCENTAGE: 3; + + collectReports(callback: nsIHandleReportCallback, data: nsISupports, anonymize: boolean): void; +} + +type nsIFinishReportingCallback = Callable<{ + callback(data: nsISupports): void; +}> + +type nsIHeapAllocatedCallback = Callable<{ + callback(bytesAllocated: i64): void; +}> + +interface nsIMemoryReporterManager extends nsISupports { + init(): void; + registerStrongReporter(reporter: nsIMemoryReporter): void; + registerStrongAsyncReporter(reporter: nsIMemoryReporter): void; + registerWeakReporter(reporter: nsIMemoryReporter): void; + registerWeakAsyncReporter(reporter: nsIMemoryReporter): void; + unregisterStrongReporter(reporter: nsIMemoryReporter): void; + unregisterWeakReporter(reporter: nsIMemoryReporter): void; + blockRegistrationAndHideExistingReporters(): void; + unblockRegistrationAndRestoreOriginalReporters(): void; + registerStrongReporterEvenIfBlocked(aReporter: nsIMemoryReporter): void; + getReports(handleReport: nsIHandleReportCallback, handleReportData: nsISupports, finishReporting: nsIFinishReportingCallback, finishReportingData: nsISupports, anonymize: boolean): void; + readonly vsize: i64; + readonly vsizeMaxContiguous: i64; + readonly resident: i64; + readonly residentFast: i64; + readonly residentPeak: i64; + readonly residentUnique: i64; + readonly heapAllocated: i64; + readonly heapOverheadFraction: i64; + readonly JSMainRuntimeGCHeap: i64; + readonly JSMainRuntimeTemporaryPeak: i64; + readonly JSMainRuntimeCompartmentsSystem: i64; + readonly JSMainRuntimeCompartmentsUser: i64; + readonly JSMainRuntimeRealmsSystem: i64; + readonly JSMainRuntimeRealmsUser: i64; + readonly imagesContentUsedUncompressed: i64; + readonly storageSQLite: i64; + readonly lowMemoryEventsPhysical: i64; + readonly ghostWindows: i64; + readonly pageFaultsHard: i64; + readonly hasMozMallocUsableSize: boolean; + readonly isDMDEnabled: boolean; + readonly isDMDRunning: boolean; + minimizeMemoryUsage(callback: nsIRunnable): void; + sizeOfTab(window: mozIDOMWindowProxy, jsObjectsSize: OutParam<i64>, jsStringsSize: OutParam<i64>, jsOtherSize: OutParam<i64>, domSize: OutParam<i64>, styleSize: OutParam<i64>, otherSize: OutParam<i64>, totalSize: OutParam<i64>, jsMilliseconds: OutParam<double>, nonJSMilliseconds: OutParam<double>): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsISecurityConsoleMessage.idl + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsISupports.idl + +interface nsISupports { + QueryInterface?<T extends nsIID>(aIID: T): nsQIResult<T>; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIUUIDGenerator.idl + +interface nsIUUIDGenerator extends nsISupports { + generateUUID(): nsID; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIVersionComparator.idl + +interface nsIVersionComparator extends nsISupports { + compare(A: string, B: string): i32; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsIWeakReference.idl + +interface nsIWeakReference extends nsISupports { + QueryReferent<T extends nsIID>(uuid: T): nsQIResult<T>; +} + +interface nsISupportsWeakReference extends nsISupports { + GetWeakReference(): nsIWeakReference; +} + +// https://searchfox.org/mozilla-central/source/xpcom/base/nsrootidl.idl + +// https://searchfox.org/mozilla-central/source/xpcom/components/nsICategoryManager.idl + +interface nsICategoryEntry extends nsISupportsCString { + readonly entry: string; + readonly value: string; +} + +interface nsICategoryManager extends nsISupports { + getCategoryEntry(aCategory: string, aEntry: string): string; + addCategoryEntry(aCategory: string, aEntry: string, aValue: string, aPersist: boolean, aReplace: boolean): string; + deleteCategoryEntry(aCategory: string, aEntry: string, aPersist: boolean): void; + deleteCategory(aCategory: string): void; + enumerateCategory(aCategory: string): nsISimpleEnumerator; + enumerateCategories(): nsISimpleEnumerator; +} + +// https://searchfox.org/mozilla-central/source/xpcom/components/nsIClassInfo.idl + +interface nsIClassInfo extends nsISupports { + readonly SINGLETON: 1; + readonly THREADSAFE: 2; + readonly SINGLETON_CLASSINFO: 32; + readonly RESERVED: 2147483648; + + readonly interfaces: nsID[]; + getScriptableHelper(): nsIXPCScriptable; + readonly contractID: string; + readonly classDescription: string; + readonly classID: nsID; + readonly flags: u32; +} + +// https://searchfox.org/mozilla-central/source/xpcom/components/nsIComponentManager.idl + +interface nsIComponentManager extends nsISupports { + getClassObject<T extends nsIID>(aClass: nsID, aIID: T): nsQIResult<T>; + getClassObjectByContractID<T extends nsIID>(aContractID: string, aIID: T): nsQIResult<T>; + addBootstrappedManifestLocation(aLocation: nsIFile): void; + removeBootstrappedManifestLocation(aLocation: nsIFile): void; + getManifestLocations(): nsIArray; + getComponentJSMs(): nsIUTF8StringEnumerator; + getComponentESModules(): nsIUTF8StringEnumerator; +} + +// https://searchfox.org/mozilla-central/source/xpcom/components/nsIComponentRegistrar.idl + +interface nsIComponentRegistrar extends nsISupports { + autoRegister(aSpec: nsIFile): void; + registerFactory(aClass: nsID, aClassName: string, aContractID: string, aFactory: nsIFactory): void; + unregisterFactory(aClass: nsID, aFactory: nsIFactory): void; + isCIDRegistered(aClass: nsID): boolean; + isContractIDRegistered(aContractID: string): boolean; + getContractIDs(): string[]; + contractIDToCID(aContractID: string): nsID; +} + +// https://searchfox.org/mozilla-central/source/xpcom/components/nsIFactory.idl + +interface nsIFactory extends nsISupports { + createInstance<T extends nsIID>(iid: T): nsQIResult<T>; +} + +// https://searchfox.org/mozilla-central/source/xpcom/components/nsIServiceManager.idl + +interface nsIServiceManager extends nsISupports { + getService<T extends nsIID>(aClass: nsID, aIID: T): nsQIResult<T>; + getServiceByContractID<T extends nsIID>(aContractID: string, aIID: T): nsQIResult<T>; + isServiceInstantiated(aClass: nsID, aIID: nsID): boolean; + isServiceInstantiatedByContractID(aContractID: string, aIID: nsID): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIArray.idl + +interface nsIArray extends nsISupports { + readonly length: u32; + queryElementAt<T extends nsIID>(index: u32, uuid: T): nsQIResult<T>; + indexOf(startIndex: u32, element: nsISupports): u32; + enumerate(aElemIID?: nsID): nsISimpleEnumerator; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIArrayExtensions.idl + +interface nsIArrayExtensions extends nsIArray { + Count(): u32; + GetElementAt(index: u32): nsISupports; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIINIParser.idl + +interface nsIINIParser extends nsISupports { + initFromString(aData: string): void; + getSections(): nsIUTF8StringEnumerator; + getKeys(aSection: string): nsIUTF8StringEnumerator; + getString(aSection: string, aKey: string): string; +} + +interface nsIINIParserWriter extends nsISupports { + setString(aSection: string, aKey: string, aValue: string): void; + writeFile(aINIFile: nsIFile): void; + writeToString(): string; +} + +interface nsIINIParserFactory extends nsISupports { + createINIParser(aINIFile?: nsIFile): nsIINIParser; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIMutableArray.idl + +interface nsIMutableArray extends nsIArrayExtensions { + appendElement(element: nsISupports): void; + removeElementAt(index: u32): void; + insertElementAt(element: nsISupports, index: u32): void; + replaceElementAt(element: nsISupports, index: u32): void; + clear(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIObserver.idl + +type nsIObserver = Callable<{ + observe(aSubject: nsISupports, aTopic: string, aData: string): void; +}> + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIObserverService.idl + +interface nsIObserverService extends nsISupports { + addObserver(anObserver: nsIObserver, aTopic: string, ownsWeak?: boolean): void; + removeObserver(anObserver: nsIObserver, aTopic: string): void; + notifyObservers(aSubject: nsISupports, aTopic: string, someData?: string): void; + enumerateObservers(aTopic: string): nsISimpleEnumerator; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIPersistentProperties2.idl + +interface nsIPropertyElement extends nsISupports { + key: string; + value: string; +} + +interface nsIPersistentProperties extends nsIProperties { + load(input: nsIInputStream): void; + save(output: nsIOutputStream, header: string): void; + enumerate(): nsISimpleEnumerator; + getStringProperty(key: string): string; + setStringProperty(key: string, value: string): string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIProperties.idl + +interface nsIProperties extends nsISupports { + get<T extends nsIID>(prop: string, iid: T): nsQIResult<T>; + set(prop: string, value: nsISupports): void; + has(prop: string): boolean; + undefine(prop: string): void; + getKeys(): string[]; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIProperty.idl + +interface nsIProperty extends nsISupports { + readonly name: string; + readonly value: nsIVariant; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIPropertyBag.idl + +interface nsIPropertyBag extends nsISupports { + readonly enumerator: nsISimpleEnumerator; + getProperty(name: string): nsIVariant; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIPropertyBag2.idl + +interface nsIPropertyBag2 extends nsIPropertyBag { + getPropertyAsInt32(prop: string): i32; + getPropertyAsUint32(prop: string): u32; + getPropertyAsInt64(prop: string): i64; + getPropertyAsUint64(prop: string): u64; + getPropertyAsDouble(prop: string): double; + getPropertyAsAString(prop: string): string; + getPropertyAsACString(prop: string): string; + getPropertyAsAUTF8String(prop: string): string; + getPropertyAsBool(prop: string): boolean; + getPropertyAsInterface<T extends nsIID>(prop: string, iid: T): nsQIResult<T>; + get(prop: string): nsIVariant; + hasKey(prop: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsISerializable.idl + +interface nsISerializable extends nsISupports { + read(aInputStream: nsIObjectInputStream): void; + write(aOutputStream: nsIObjectOutputStream): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsISimpleEnumerator.idl + +interface nsIJSEnumerator extends nsISupports { + iterator(): nsIJSEnumerator; + next(): any; +} + +interface nsISimpleEnumeratorBase extends nsISupports { + iterator(): nsIJSEnumerator; + entries(aIface: nsID): nsIJSEnumerator; +} + +interface nsISimpleEnumerator extends nsISimpleEnumeratorBase { + hasMoreElements(): boolean; + getNext(): nsISupports; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIStringEnumerator.idl + +interface nsIStringEnumeratorBase extends nsISupports { + iterator(): nsIJSEnumerator; +} + +interface nsIStringEnumerator extends nsIStringEnumeratorBase { + hasMore(): boolean; + getNext(): string; +} + +interface nsIUTF8StringEnumerator extends nsIStringEnumeratorBase { + hasMore(): boolean; + getNext(): string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsISupportsIterators.idl + +interface nsIOutputIterator extends nsISupports { + putElement(anElementToPut: nsISupports): void; + stepForward(): void; +} + +interface nsIInputIterator extends nsISupports { + getElement(): nsISupports; + stepForward(): void; + isEqualTo(anotherIterator: nsISupports): boolean; + clone(): nsISupports; +} + +interface nsIForwardIterator extends nsISupports { + getElement(): nsISupports; + putElement(anElementToPut: nsISupports): void; + stepForward(): void; + isEqualTo(anotherIterator: nsISupports): boolean; + clone(): nsISupports; +} + +interface nsIBidirectionalIterator extends nsISupports { + getElement(): nsISupports; + putElement(anElementToPut: nsISupports): void; + stepForward(): void; + stepBackward(): void; + isEqualTo(anotherIterator: nsISupports): boolean; + clone(): nsISupports; +} + +interface nsIRandomAccessIterator extends nsISupports { + getElement(): nsISupports; + getElementAt(anOffset: i32): nsISupports; + putElement(anElementToPut: nsISupports): void; + putElementAt(anOffset: i32, anElementToPut: nsISupports): void; + stepForward(): void; + stepForwardBy(anOffset: i32): void; + stepBackward(): void; + stepBackwardBy(anOffset: i32): void; + isEqualTo(anotherIterator: nsISupports): boolean; + clone(): nsISupports; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsISupportsPrimitives.idl + +interface nsISupportsPrimitive extends nsISupports { + readonly TYPE_ID: 1; + readonly TYPE_CSTRING: 2; + readonly TYPE_STRING: 3; + readonly TYPE_PRBOOL: 4; + readonly TYPE_PRUINT8: 5; + readonly TYPE_PRUINT16: 6; + readonly TYPE_PRUINT32: 7; + readonly TYPE_PRUINT64: 8; + readonly TYPE_PRTIME: 9; + readonly TYPE_CHAR: 10; + readonly TYPE_PRINT16: 11; + readonly TYPE_PRINT32: 12; + readonly TYPE_PRINT64: 13; + readonly TYPE_FLOAT: 14; + readonly TYPE_DOUBLE: 15; + readonly TYPE_INTERFACE_POINTER: 17; + + readonly type: u16; +} + +interface nsISupportsID extends nsISupportsPrimitive { + data: nsID; + toString(): string; +} + +interface nsISupportsCString extends nsISupportsPrimitive { + data: string; + toString(): string; +} + +interface nsISupportsString extends nsISupportsPrimitive { + data: string; + toString(): string; +} + +interface nsISupportsPRBool extends nsISupportsPrimitive { + data: boolean; + toString(): string; +} + +interface nsISupportsPRUint8 extends nsISupportsPrimitive { + data: u8; + toString(): string; +} + +interface nsISupportsPRUint16 extends nsISupportsPrimitive { + data: u16; + toString(): string; +} + +interface nsISupportsPRUint32 extends nsISupportsPrimitive { + data: u32; + toString(): string; +} + +interface nsISupportsPRUint64 extends nsISupportsPrimitive { + data: u64; + toString(): string; +} + +interface nsISupportsPRTime extends nsISupportsPrimitive { + data: PRTime; + toString(): string; +} + +interface nsISupportsChar extends nsISupportsPrimitive { + data: string; + toString(): string; +} + +interface nsISupportsPRInt16 extends nsISupportsPrimitive { + data: i16; + toString(): string; +} + +interface nsISupportsPRInt32 extends nsISupportsPrimitive { + data: i32; + toString(): string; +} + +interface nsISupportsPRInt64 extends nsISupportsPrimitive { + data: i64; + toString(): string; +} + +interface nsISupportsFloat extends nsISupportsPrimitive { + data: float; + toString(): string; +} + +interface nsISupportsDouble extends nsISupportsPrimitive { + data: double; + toString(): string; +} + +interface nsISupportsInterfacePointer extends nsISupportsPrimitive { + data: nsISupports; + dataIID: nsID; + toString(): string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIVariant.idl + +interface nsIVariant extends nsISupports { +} + +interface nsIWritableVariant extends nsIVariant { + writable: boolean; + setAsInt8(aValue: u8): void; + setAsInt16(aValue: i16): void; + setAsInt32(aValue: i32): void; + setAsInt64(aValue: i64): void; + setAsUint8(aValue: u8): void; + setAsUint16(aValue: u16): void; + setAsUint32(aValue: u32): void; + setAsUint64(aValue: u64): void; + setAsFloat(aValue: float): void; + setAsDouble(aValue: double): void; + setAsBool(aValue: boolean): void; + setAsChar(aValue: string): void; + setAsWChar(aValue: string): void; + setAsID(aValue: nsID): void; + setAsAString(aValue: string): void; + setAsACString(aValue: string): void; + setAsAUTF8String(aValue: string): void; + setAsString(aValue: string): void; + setAsWString(aValue: string): void; + setAsISupports(aValue: nsISupports): void; + setAsStringWithSize(size: u32, str: string): void; + setAsWStringWithSize(size: u32, str: string): void; + setAsVoid(): void; + setAsEmpty(): void; + setAsEmptyArray(): void; + setFromVariant(aValue: nsIVariant): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIWindowsRegKey.idl + +interface nsIWindowsRegKey extends nsISupports { + readonly ROOT_KEY_CLASSES_ROOT: 2147483648; + readonly ROOT_KEY_CURRENT_USER: 2147483649; + readonly ROOT_KEY_LOCAL_MACHINE: 2147483650; + readonly ACCESS_BASIC: 131072; + readonly ACCESS_QUERY_VALUE: 1; + readonly ACCESS_SET_VALUE: 2; + readonly ACCESS_CREATE_SUB_KEY: 4; + readonly ACCESS_ENUMERATE_SUB_KEYS: 8; + readonly ACCESS_NOTIFY: 16; + readonly ACCESS_READ: 131097; + readonly ACCESS_WRITE: 131078; + readonly ACCESS_ALL: 131103; + readonly WOW64_32: 512; + readonly WOW64_64: 256; + readonly TYPE_NONE: 0; + readonly TYPE_STRING: 1; + readonly TYPE_BINARY: 3; + readonly TYPE_INT: 4; + readonly TYPE_INT64: 11; + + close(): void; + open(rootKey: u32, relPath: string, mode: u32): void; + create(rootKey: u32, relPath: string, mode: u32): void; + openChild(relPath: string, mode: u32): nsIWindowsRegKey; + createChild(relPath: string, mode: u32): nsIWindowsRegKey; + readonly childCount: u32; + getChildName(index: u32): string; + hasChild(name: string): boolean; + readonly valueCount: u32; + getValueName(index: u32): string; + hasValue(name: string): boolean; + removeChild(relPath: string): void; + removeValue(name: string): void; + getValueType(name: string): u32; + readStringValue(name: string): string; + readIntValue(name: string): u32; + readInt64Value(name: string): u64; + readBinaryValue(name: string): string; + writeStringValue(name: string, data: string): void; + writeIntValue(name: string, data: u32): void; + writeInt64Value(name: string, data: u64): void; + writeBinaryValue(name: string, data: string): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIWritablePropertyBag.idl + +interface nsIWritablePropertyBag extends nsIPropertyBag { + setProperty(name: string, value: nsIVariant): void; + deleteProperty(name: string): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/ds/nsIWritablePropertyBag2.idl + +interface nsIWritablePropertyBag2 extends nsIPropertyBag2 { + setPropertyAsInt32(prop: string, value: i32): void; + setPropertyAsUint32(prop: string, value: u32): void; + setPropertyAsInt64(prop: string, value: i64): void; + setPropertyAsUint64(prop: string, value: u64): void; + setPropertyAsDouble(prop: string, value: double): void; + setPropertyAsAString(prop: string, value: string): void; + setPropertyAsACString(prop: string, value: string): void; + setPropertyAsAUTF8String(prop: string, value: string): void; + setPropertyAsBool(prop: string, value: boolean): void; + setPropertyAsInterface(prop: string, value: nsISupports): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIAsyncInputStream.idl + +interface nsIAsyncInputStream extends nsIInputStream { + readonly WAIT_CLOSURE_ONLY: 1; + + closeWithStatus(aStatus: nsresult): void; + asyncWait(aCallback: nsIInputStreamCallback, aFlags: u32, aRequestedCount: u32, aEventTarget: nsIEventTarget): void; +} + +type nsIInputStreamCallback = Callable<{ + onInputStreamReady(aStream: nsIAsyncInputStream): void; +}> + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIAsyncOutputStream.idl + +interface nsIAsyncOutputStream extends nsIOutputStream { + readonly WAIT_CLOSURE_ONLY: 1; + + closeWithStatus(reason: nsresult): void; + asyncWait(aCallback: nsIOutputStreamCallback, aFlags: u32, aRequestedCount: u32, aEventTarget: nsIEventTarget): void; +} + +type nsIOutputStreamCallback = Callable<{ + onOutputStreamReady(aStream: nsIAsyncOutputStream): void; +}> + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIBinaryInputStream.idl + +interface nsIBinaryInputStream extends nsIInputStream { + setInputStream(aInputStream: nsIInputStream): void; + readBoolean(): boolean; + read8(): u8; + read16(): u16; + read32(): u32; + read64(): u64; + readFloat(): float; + readDouble(): double; + readCString(): string; + readString(): string; + readBytes(aLength: u32): OutParam<string>; + readByteArray(aLength: u32): u8[]; + readArrayBuffer(aLength: u64, aArrayBuffer: any): u64; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIBinaryOutputStream.idl + +interface nsIBinaryOutputStream extends nsIOutputStream { + setOutputStream(aOutputStream: nsIOutputStream): void; + writeBoolean(aBoolean: boolean): void; + write8(aByte: u8): void; + write16(a16: u16): void; + write32(a32: u32): void; + write64(a64: u64): void; + writeFloat(aFloat: float): void; + writeDouble(aDouble: double): void; + writeStringZ(aString: string): void; + writeWStringZ(aString: string): void; + writeUtf8Z(aString: string): void; + writeBytes(aString: string, aLength?: u32): void; + writeByteArray(aBytes: u8[]): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsICloneableInputStream.idl + +interface nsICloneableInputStream extends nsISupports { + readonly cloneable: boolean; + clone(): nsIInputStream; +} + +interface nsICloneableInputStreamWithRange extends nsICloneableInputStream { + cloneWithRange(start: u64, length: u64): nsIInputStream; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIConverterInputStream.idl + +interface nsIConverterInputStream extends nsIUnicharInputStream { + readonly DEFAULT_REPLACEMENT_CHARACTER: 65533; + readonly ERRORS_ARE_FATAL: 0; + + init(aStream: nsIInputStream, aCharset: string, aBufferSize: i32, aReplacementChar: char16_t): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIConverterOutputStream.idl + +interface nsIConverterOutputStream extends nsIUnicharOutputStream { + init(aOutStream: nsIOutputStream, aCharset: string): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIDirectoryEnumerator.idl + +interface nsIDirectoryEnumerator extends nsISimpleEnumerator { + readonly nextFile: nsIFile; + close(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIDirectoryService.idl + +interface nsIDirectoryServiceProvider extends nsISupports { + getFile(prop: string, persistent: OutParam<boolean>): nsIFile; +} + +interface nsIDirectoryServiceProvider2 extends nsIDirectoryServiceProvider { + getFiles(prop: string): nsISimpleEnumerator; +} + +interface nsIDirectoryService extends nsISupports { + init(): void; + registerProvider(prov: nsIDirectoryServiceProvider): void; + unregisterProvider(prov: nsIDirectoryServiceProvider): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIFile.idl + +interface nsIFile extends nsISupports { + readonly NORMAL_FILE_TYPE: 0; + readonly DIRECTORY_TYPE: 1; + readonly OS_READAHEAD: 1073741824; + readonly DELETE_ON_CLOSE: 2147483648; + + append(node: string): void; + normalize(): void; + create(type: u32, permissions: u32, skipAncestors?: boolean): void; + leafName: string; + readonly displayName: string; + copyTo(newParentDir: nsIFile, newName: string): void; + copyToFollowingLinks(newParentDir: nsIFile, newName: string): void; + moveTo(newParentDir: nsIFile, newName: string): void; + moveToFollowingLinks(newParentDir: nsIFile, newName: string): void; + renameTo(newParentDir: nsIFile, newName: string): void; + remove(recursive: boolean, removeCount?: InOutParam<u32>): void; + permissions: u32; + permissionsOfLink: u32; + lastAccessedTime: PRTime; + lastAccessedTimeOfLink: PRTime; + lastModifiedTime: PRTime; + lastModifiedTimeOfLink: PRTime; + readonly creationTime: PRTime; + readonly creationTimeOfLink: PRTime; + fileSize: i64; + readonly fileSizeOfLink: i64; + readonly target: string; + readonly path: string; + exists(): boolean; + isWritable(): boolean; + isReadable(): boolean; + isExecutable(): boolean; + isHidden(): boolean; + isDirectory(): boolean; + isFile(): boolean; + isSymlink(): boolean; + isSpecial(): boolean; + createUnique(type: u32, permissions: u32): void; + clone(): nsIFile; + equals(inFile: nsIFile): boolean; + contains(inFile: nsIFile): boolean; + readonly parent: nsIFile; + readonly directoryEntries: nsIDirectoryEnumerator; + initWithPath(filePath: string): void; + initWithFile(aFile: nsIFile): void; + readonly diskSpaceAvailable: i64; + readonly diskCapacity: i64; + appendRelativePath(relativeFilePath: string): void; + persistentDescriptor: string; + reveal(): void; + launch(): void; + getRelativeDescriptor(fromFile: nsIFile): string; + setRelativeDescriptor(fromFile: nsIFile, relativeDesc: string): void; + getRelativePath(fromFile: nsIFile): string; + setRelativePath(fromFile: nsIFile, relativeDesc: string): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIIOUtil.idl + +interface nsIIOUtil extends nsISupports { + inputStreamIsBuffered(aStream: nsIInputStream): boolean; + outputStreamIsBuffered(aStream: nsIOutputStream): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIInputStream.idl + +interface nsIInputStream extends nsISupports { + close(): void; + available(): u64; + streamStatus(): void; + isNonBlocking(): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIInputStreamLength.idl + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIInputStreamPriority.idl + +interface nsIInputStreamPriority extends nsISupports { + priority: u32; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIInputStreamTee.idl + +interface nsIInputStreamTee extends nsIInputStream { + source: nsIInputStream; + sink: nsIOutputStream; + eventTarget: nsIEventTarget; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsILineInputStream.idl + +interface nsILineInputStream extends nsISupports { + readLine(aLine: OutParam<string>): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsILocalFileWin.idl + +interface nsILocalFileWin extends nsIFile { + initWithCommandLine(aCommandLine: string): void; + getVersionInfoField(aField: string): string; + readOnly: boolean; + useDOSDevicePathSyntax: boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIMultiplexInputStream.idl + +interface nsIMultiplexInputStream extends nsISupports { + readonly count: u32; + appendStream(stream: nsIInputStream): void; + getStream(index: u32): nsIInputStream; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIObjectInputStream.idl + +interface nsIObjectInputStream extends nsIBinaryInputStream { + readObject(aIsStrongRef: boolean): nsISupports; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIObjectOutputStream.idl + +interface nsIObjectOutputStream extends nsIBinaryOutputStream { + writeObject(aObject: nsISupports, aIsStrongRef: boolean): void; + writeSingleRefObject(aObject: nsISupports): void; + writeCompoundObject(aObject: nsISupports, aIID: nsID, aIsStrongRef: boolean): void; + writeID(aID: nsID): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIOutputStream.idl + +interface nsIOutputStream extends nsISupports { + close(): void; + flush(): void; + streamStatus(): void; + write(aBuf: string, aCount: u32): u32; + writeFrom(aFromStream: nsIInputStream, aCount: u32): u32; + isNonBlocking(): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIPipe.idl + +interface nsIPipe extends nsISupports { + init(nonBlockingInput: boolean, nonBlockingOutput: boolean, segmentSize: u32, segmentCount: u32): void; + readonly inputStream: nsIAsyncInputStream; + readonly outputStream: nsIAsyncOutputStream; +} + +interface nsISearchableInputStream extends nsISupports { + search(forString: string, ignoreCase: boolean, found: OutParam<boolean>, offsetSearchedTo: OutParam<u32>): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIRandomAccessStream.idl + +interface nsIRandomAccessStream extends nsISeekableStream { + getInputStream(): nsIInputStream; + getOutputStream(): nsIOutputStream; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsISafeOutputStream.idl + +interface nsISafeOutputStream extends nsISupports { + finish(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIScriptableBase64Encoder.idl + +interface nsIScriptableBase64Encoder extends nsISupports { + encodeToCString(stream: nsIInputStream, length: u32): string; + encodeToString(stream: nsIInputStream, length: u32): string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIScriptableInputStream.idl + +interface nsIScriptableInputStream extends nsISupports { + close(): void; + init(aInputStream: nsIInputStream): void; + available(): u64; + read(aCount: u32): string; + readBytes(aCount: u32): string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsISeekableStream.idl + +interface nsISeekableStream extends nsITellableStream { + readonly NS_SEEK_SET: 0; + readonly NS_SEEK_CUR: 1; + readonly NS_SEEK_END: 2; + + seek(whence: i32, offset: i64): void; + setEOF(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIStorageStream.idl + +interface nsIStorageStream extends nsISupports { + init(segmentSize: u32, maxSize: u32): void; + getOutputStream(startPosition: i32): nsIOutputStream; + newInputStream(startPosition: i32): nsIInputStream; + length: u32; + readonly writeInProgress: boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIStreamBufferAccess.idl + +interface nsIStreamBufferAccess extends nsISupports { + disableBuffering(): void; + enableBuffering(): void; + readonly unbufferedStream: nsISupports; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIStringStream.idl + +interface nsIStringInputStream extends nsIInputStream { + setData(data: string, dataLen: i32): void; + setUTF8Data(data: string): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsITellableStream.idl + +interface nsITellableStream extends nsISupports { + tell(): i64; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIUnicharInputStream.idl + +interface nsIUnicharInputStream extends nsISupports { + readString(aCount: u32, aString: OutParam<string>): u32; + close(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIUnicharLineInputStream.idl + +interface nsIUnicharLineInputStream extends nsISupports { + readLine(aLine: OutParam<string>): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/io/nsIUnicharOutputStream.idl + +interface nsIUnicharOutputStream extends nsISupports { + write(aCount: u32, c: char16_t[]): boolean; + writeString(str: string): boolean; + flush(): void; + close(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIBlocklistService.idl + +interface nsIBlocklistService extends nsISupports { + readonly STATE_NOT_BLOCKED: 0; + readonly STATE_SOFTBLOCKED: 1; + readonly STATE_BLOCKED: 2; + readonly STATE_MAX: 3; + + readonly isLoaded: boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsICrashReporter.idl + +interface nsICrashReporter extends nsISupports { + readonly crashReporterEnabled: boolean; + serverURL: nsIURL; + minidumpPath: nsIFile; + getMinidumpForID(id: string): nsIFile; + getExtraFileForID(id: string): nsIFile; + annotateCrashReport(key: string, data: string): void; + removeCrashReportAnnotation(key: string): void; + isAnnotationAllowedForPing(value: string): boolean; + appendAppNotesToCrashReport(data: string): void; + registerAppMemory(ptr: u64, size: u64): void; + submitReports: boolean; + UpdateCrashEventsDir(): void; + saveMemoryReport(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIDeviceSensors.idl + +interface nsIDeviceSensorData extends nsISupports { + readonly TYPE_ORIENTATION: 0; + readonly TYPE_ACCELERATION: 1; + readonly TYPE_PROXIMITY: 2; + readonly TYPE_LINEAR_ACCELERATION: 3; + readonly TYPE_GYROSCOPE: 4; + readonly TYPE_LIGHT: 5; + readonly TYPE_ROTATION_VECTOR: 6; + readonly TYPE_GAME_ROTATION_VECTOR: 7; + + readonly type: u32; + readonly x: double; + readonly y: double; + readonly z: double; +} + +interface nsIDeviceSensors extends nsISupports { + hasWindowListener(aType: u32, aWindow: nsIDOMWindow): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIGIOService.idl + +interface nsIGIOMimeApp extends nsIHandlerApp { + readonly EXPECTS_URIS: 0; + readonly EXPECTS_PATHS: 1; + readonly EXPECTS_URIS_FOR_NON_FILES: 2; + + readonly id: string; + readonly command: string; + readonly expectsURIs: i32; + readonly supportedURISchemes: nsIUTF8StringEnumerator; + setAsDefaultForMimeType(mimeType: string): void; + setAsDefaultForFileExtensions(extensions: string): void; + setAsDefaultForURIScheme(uriScheme: string): void; +} + +interface nsIGIOService extends nsISupports { + getMimeTypeFromExtension(extension: string): string; + getAppForURIScheme(aURIScheme: string): nsIHandlerApp; + getAppsForURIScheme(aURIScheme: string): nsIMutableArray; + getAppForMimeType(mimeType: string): nsIHandlerApp; + createAppFromCommand(cmd: string, appName: string): nsIGIOMimeApp; + findAppFromCommand(cmd: string): nsIGIOMimeApp; + getDescriptionForMimeType(mimeType: string): string; + readonly isRunningUnderFlatpak: boolean; + readonly isRunningUnderSnap: boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIGSettingsService.idl + +interface nsIGSettingsCollection extends nsISupports { + setString(key: string, value: string): void; + setBoolean(key: string, value: boolean): void; + setInt(key: string, value: i32): void; + getString(key: string): string; + getBoolean(key: string): boolean; + getInt(key: string): i32; + getStringList(key: string): nsIArray; +} + +interface nsIGSettingsService extends nsISupports { + getCollectionForSchema(schema: string): nsIGSettingsCollection; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIGeolocationProvider.idl + +interface nsIGeolocationUpdate extends nsISupports { + update(position: nsIDOMGeoPosition): void; + notifyError(error: u16): void; +} + +interface nsIGeolocationProvider extends nsISupports { + startup(): void; + watch(callback: nsIGeolocationUpdate): void; + shutdown(): void; + setHighAccuracy(enable: boolean): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIHapticFeedback.idl + +interface nsIHapticFeedback extends nsISupports { + readonly ShortPress: 0; + readonly LongPress: 1; + + performSimpleAction(isLongPress: i32): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIPlatformInfo.idl + +interface nsIPlatformInfo extends nsISupports { + readonly platformVersion: string; + readonly platformBuildID: string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsISystemInfo.idl + +interface nsISystemInfo extends nsISupports { + readonly diskInfo: Promise<any>; + readonly countryCode: Promise<any>; + readonly osInfo: Promise<any>; + readonly processInfo: Promise<any>; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIXULAppInfo.idl + +interface nsIXULAppInfo extends nsIPlatformInfo { + readonly vendor: string; + readonly name: string; + readonly ID: string; + readonly version: string; + readonly appBuildID: string; + readonly UAName: string; + readonly sourceURL: string; + readonly updateURL: string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/system/nsIXULRuntime.idl + +} // global + +declare namespace nsIXULRuntime { + +enum ExperimentStatus { + eExperimentStatusUnenrolled = 0, + eExperimentStatusControl = 1, + eExperimentStatusTreatment = 2, + eExperimentStatusDisqualified = 3, + eExperimentStatusRollout = 4, + eExperimentStatusCount = 5, +} + +enum ContentWin32kLockdownState { + LockdownEnabled = 1, + MissingWebRender = 2, + OperatingSystemNotSupported = 3, + PrefNotSet = 4, + MissingRemoteWebGL = 5, + MissingNonNativeTheming = 6, + DisabledByEnvVar = 7, + DisabledBySafeMode = 8, + DisabledByE10S = 9, + DisabledByUserPref = 10, + EnabledByUserPref = 11, + DisabledByControlGroup = 12, + EnabledByTreatmentGroup = 13, + DisabledByDefault = 14, + EnabledByDefault = 15, + DecodersArentRemote = 16, + IncompatibleMitigationPolicy = 17, +} + +enum FissionDecisionStatus { + eFissionStatusUnknown = 0, + eFissionExperimentControl = 1, + eFissionExperimentTreatment = 2, + eFissionDisabledByE10sEnv = 3, + eFissionEnabledByEnv = 4, + eFissionDisabledByEnv = 5, + eFissionEnabledByDefault = 7, + eFissionDisabledByDefault = 8, + eFissionEnabledByUserPref = 9, + eFissionDisabledByUserPref = 10, + eFissionDisabledByE10sOther = 11, + eFissionEnabledByRollout = 12, +} + +} + +declare global { + +interface nsIXULRuntime extends nsISupports, Enums<typeof nsIXULRuntime.ExperimentStatus & typeof nsIXULRuntime.ContentWin32kLockdownState & typeof nsIXULRuntime.FissionDecisionStatus> { + readonly PROCESS_TYPE_DEFAULT: 0; + readonly PROCESS_TYPE_CONTENT: 2; + readonly PROCESS_TYPE_IPDLUNITTEST: 3; + readonly PROCESS_TYPE_GMPLUGIN: 4; + readonly PROCESS_TYPE_GPU: 5; + readonly PROCESS_TYPE_VR: 6; + readonly PROCESS_TYPE_RDD: 7; + readonly PROCESS_TYPE_SOCKET: 8; + readonly PROCESS_TYPE_REMOTESANDBOXBROKER: 9; + readonly PROCESS_TYPE_FORKSERVER: 10; + readonly PROCESS_TYPE_UTILITY: 11; + readonly E10S_MULTI_EXPERIMENT: 1; + + readonly inSafeMode: boolean; + readonly win32kExperimentStatus: nsIXULRuntime.ExperimentStatus; + readonly win32kLiveStatusTestingOnly: nsIXULRuntime.ContentWin32kLockdownState; + readonly win32kSessionStatus: nsIXULRuntime.ContentWin32kLockdownState; + readonly fissionAutostart: boolean; + readonly fissionDecisionStatus: nsIXULRuntime.FissionDecisionStatus; + readonly fissionDecisionStatusString: string; + readonly sessionHistoryInParent: boolean; + readonly sessionStorePlatformCollection: boolean; + logConsoleErrors: boolean; + readonly OS: string; + readonly XPCOMABI: string; + readonly widgetToolkit: string; + readonly processType: u32; + readonly processID: u32; + readonly uniqueProcessID: u64; + readonly remoteType: string; + readonly browserTabsRemoteAutostart: boolean; + readonly maxWebProcessCount: u32; + readonly accessibilityEnabled: boolean; + readonly accessibilityInstantiator: string; + readonly is64Bit: boolean; + readonly isTextRecognitionSupported: boolean; + invalidateCachesOnRestart(): void; + ensureContentProcess(): void; + readonly replacedLockTime: PRTime; + readonly defaultUpdateChannel: string; + readonly distributionID: string; + readonly windowsDLLBlocklistStatus: boolean; + readonly restartedByOS: boolean; + readonly chromeColorSchemeIsDark: boolean; + readonly contentThemeDerivedColorSchemeIsDark: boolean; + readonly prefersReducedMotion: boolean; + readonly drawInTitlebar: boolean; + readonly desktopEnvironment: string; + readonly isWayland: boolean; + readonly processStartupShortcut: string; + readonly launcherProcessState: u32; + readonly lastAppVersion: string; + readonly lastAppBuildID: string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIDirectTaskDispatcher.idl + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIEnvironment.idl + +interface nsIEnvironment extends nsISupports { + set(aName: string, aValue: string): void; + get(aName: string): string; + exists(aName: string): boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIEventTarget.idl + +interface nsIEventTarget extends nsISupports { + readonly DISPATCH_NORMAL: 0; + readonly DISPATCH_AT_END: 2; + readonly DISPATCH_EVENT_MAY_BLOCK: 4; + readonly DISPATCH_IGNORE_BLOCK_DISPATCH: 8; + + isOnCurrentThread(): boolean; + dispatch(event: nsIRunnable, flags: u32): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIIdlePeriod.idl + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsINamed.idl + +interface nsINamed extends nsISupports { + readonly name: string; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIProcess.idl + +interface nsIProcess extends nsISupports { + init(executable: nsIFile): void; + kill(): void; + run(blocking: boolean, args: string[], count: u32): void; + runAsync(args: string[], count: u32, observer?: nsIObserver, holdWeak?: boolean): void; + runw(blocking: boolean, args: string[], count: u32): void; + runwAsync(args: string[], count: u32, observer?: nsIObserver, holdWeak?: boolean): void; + startHidden: boolean; + noShell: boolean; + readonly pid: u32; + readonly exitValue: i32; + readonly isRunning: boolean; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIRunnable.idl + +type nsIRunnable = Callable<{ + run(): void; +}> + +interface nsIRunnablePriority extends nsISupports { + readonly PRIORITY_IDLE: 0; + readonly PRIORITY_DEFERRED_TIMERS: 1; + readonly PRIORITY_LOW: 2; + readonly PRIORITY_NORMAL: 4; + readonly PRIORITY_MEDIUMHIGH: 5; + readonly PRIORITY_INPUT_HIGH: 6; + readonly PRIORITY_VSYNC: 7; + readonly PRIORITY_RENDER_BLOCKING: 9; + readonly PRIORITY_CONTROL: 10; + + readonly priority: u32; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsISerialEventTarget.idl + +interface nsISerialEventTarget extends nsIEventTarget { +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsISupportsPriority.idl + +interface nsISupportsPriority extends nsISupports { + readonly PRIORITY_HIGHEST: -20; + readonly PRIORITY_HIGH: -10; + readonly PRIORITY_NORMAL: 0; + readonly PRIORITY_LOW: 10; + readonly PRIORITY_LOWEST: 20; + + priority: i32; + adjustPriority(delta: i32): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThread.idl + +} // global + +declare namespace nsIThread { + +enum QoSPriority { + QOS_PRIORITY_NORMAL = 0, + QOS_PRIORITY_LOW = 1, +} + +} + +declare global { + +interface nsIThread extends nsISerialEventTarget, Enums<typeof nsIThread.QoSPriority> { + shutdown(): void; + hasPendingEvents(): boolean; + hasPendingHighPriorityEvents(): boolean; + processNextEvent(mayWait: boolean): boolean; + asyncShutdown(): void; + beginShutdown(): nsIThreadShutdown; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThreadInternal.idl + +interface nsIThreadInternal extends nsIThread { + observer: nsIThreadObserver; + addObserver(observer: nsIThreadObserver): void; + removeObserver(observer: nsIThreadObserver): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThreadManager.idl + +type nsINestedEventLoopCondition = Callable<{ + isDone(): boolean; +}> + +interface nsIThreadManager extends nsISupports { + readonly mainThread: nsIThread; + readonly currentThread: nsIThread; + dispatchToMainThread(event: nsIRunnable, priority?: u32): void; + dispatchToMainThreadWithMicroTask(event: nsIRunnable, priority?: u32): void; + idleDispatchToMainThread(event: nsIRunnable, timeout?: u32): void; + dispatchDirectTaskToCurrentThread(event: nsIRunnable): void; + spinEventLoopUntil(aVeryGoodReasonToDoThis: string, condition: nsINestedEventLoopCondition): void; + spinEventLoopUntilOrQuit(aVeryGoodReasonToDoThis: string, condition: nsINestedEventLoopCondition): void; + spinEventLoopUntilEmpty(): void; + readonly mainThreadEventTarget: nsIEventTarget; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThreadPool.idl + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsIThreadShutdown.idl + +interface nsIThreadShutdown extends nsISupports { + onCompletion(aEvent: nsIRunnable): void; + readonly completed: boolean; + stopWaitingAndLeakThread(): void; +} + +// https://searchfox.org/mozilla-central/source/xpcom/threads/nsITimer.idl + +type nsITimerCallback = Callable<{ + notify(timer: nsITimer): void; +}> + +interface nsITimer extends nsISupports { + readonly TYPE_ONE_SHOT: 0; + readonly TYPE_REPEATING_SLACK: 1; + readonly TYPE_REPEATING_PRECISE: 2; + readonly TYPE_REPEATING_PRECISE_CAN_SKIP: 3; + readonly TYPE_REPEATING_SLACK_LOW_PRIORITY: 4; + readonly TYPE_ONE_SHOT_LOW_PRIORITY: 5; + + init(aObserver: nsIObserver, aDelayInMs: u32, aType: u32): void; + initWithCallback(aCallback: nsITimerCallback, aDelayInMs: u32, aType: u32): void; + cancel(): void; + delay: u32; + type: u32; + readonly callback: nsITimerCallback; + target: nsIEventTarget; + readonly name: string; +} + +interface nsITimerManager extends nsISupports { + getTimers(): nsITimer[]; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/idl/mozIJSSubScriptLoader.idl + +interface mozIJSSubScriptLoader extends nsISupports { + loadSubScript(url: string, obj?: any): any; + loadSubScriptWithOptions(url: string, options: any): any; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/idl/nsIXPCScriptable.idl + +// https://searchfox.org/mozilla-central/source/js/xpconnect/idl/xpcIJSWeakReference.idl + +interface xpcIJSWeakReference extends nsISupports { + get(): any; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/idl/xpccomponents.idl + +interface nsIXPCComponents_Classes extends nsISupports { +} + +interface nsIXPCComponents_Results extends nsISupports { +} + +interface nsIXPCComponents_ID extends nsISupports { +} + +interface nsIXPCComponents_Exception extends nsISupports { +} + +interface nsIXPCComponents_Constructor extends nsISupports { +} + +interface nsIXPCComponents_utils_Sandbox extends nsISupports { +} + +type nsIScheduledGCCallback = Callable<{ + callback(): void; +}> + +interface nsIXPCComponents_Utils extends nsISupports { + printStderr(message: string): void; + reportError(error: any, stack?: any): void; + readonly Sandbox: nsIXPCComponents_utils_Sandbox; + evalInSandbox(source: string, sandbox: any, version?: any, filename?: string, lineNo?: i32, enforceFilenameRestrictions?: boolean): any; + getUAWidgetScope(principal: nsIPrincipal): any; + getSandboxMetadata(sandbox: any): any; + setSandboxMetadata(sandbox: any, metadata: any): void; + import(aResourceURI: string, targetObj?: any): any; + isModuleLoaded(aResourceURI: string): boolean; + isJSModuleLoaded(aResourceURI: string): boolean; + isESModuleLoaded(aResourceURI: string): boolean; + unload(registryLocation: string): void; + importGlobalProperties(aPropertyList: any): void; + getWeakReference(obj: any): xpcIJSWeakReference; + forceGC(): void; + forceCC(aListener?: nsICycleCollectorListener): void; + createCCLogger(): nsICycleCollectorListener; + finishCC(): void; + ccSlice(budget: i64): void; + getMaxCCSliceTimeSinceClear(): i32; + clearMaxCCTime(): void; + forceShrinkingGC(): void; + schedulePreciseGC(callback: nsIScheduledGCCallback): void; + schedulePreciseShrinkingGC(callback: nsIScheduledGCCallback): void; + unlinkGhostWindows(): void; + intentionallyLeak(): void; + getJSTestingFunctions(): any; + getFunctionSourceLocation(func: any): any; + callFunctionWithAsyncStack(func: any, stack: nsIStackFrame, asyncCause: string): any; + getGlobalForObject(obj: any): any; + isProxy(vobject: any): boolean; + exportFunction(vfunction: any, vscope: any, voptions?: any): any; + createObjectIn(vobj: any, voptions?: any): any; + makeObjectPropsNormal(vobj: any): void; + isDeadWrapper(obj: any): boolean; + isRemoteProxy(val: any): boolean; + recomputeWrappers(vobj?: any): void; + setWantXrays(vscope: any): void; + dispatch(runnable: any, scope?: any): void; + readonly isInAutomation: boolean; + exitIfInAutomation(): void; + crashIfNotInAutomation(): void; + setGCZeal(zeal: i32): void; + nukeSandbox(obj: any): void; + blockScriptForGlobal(global: any): void; + unblockScriptForGlobal(global: any): void; + isOpaqueWrapper(obj: any): boolean; + isXrayWrapper(obj: any): boolean; + waiveXrays(aVal: any): any; + unwaiveXrays(aVal: any): any; + getClassName(aObj: any, aUnwrap: boolean): string; + getDOMClassInfo(aClassName: string): nsIClassInfo; + getIncumbentGlobal(callback?: any): any; + getDebugName(obj: any): string; + getWatchdogTimestamp(aCategory: string): PRTime; + getJSEngineTelemetryValue(): any; + cloneInto(value: any, scope: any, options?: any): any; + getWebIDLCallerPrincipal(): nsIPrincipal; + getObjectPrincipal(obj: any): nsIPrincipal; + getRealmLocation(obj: any): string; + now(): double; + readUTF8File(file: nsIFile): string; + readUTF8URI(url: nsIURI): string; + createSpellChecker(): nsIEditorSpellCheck; + createCommandLine(args: string[], workingDir: nsIFile, state: u32): nsISupports; + createCommandParams(): nsICommandParams; + createLoadContext(): nsILoadContext; + createPrivateLoadContext(): nsILoadContext; + createPersistentProperties(): nsIPersistentProperties; + createDocumentEncoder(contentType: string): nsIDocumentEncoder; + createHTMLCopyEncoder(): nsIDocumentEncoder; + readonly loadedModules: string[]; + readonly loadedJSModules: string[]; + readonly loadedESModules: string[]; + getModuleImportStack(aLocation: string): string; +} + +interface nsIXPCComponents extends nsISupports { + readonly interfaces: nsIXPCComponents_Interfaces; + readonly results: nsIXPCComponents_Results; + isSuccessCode(result: nsresult): boolean; + readonly classes: nsIXPCComponents_Classes; + readonly stack: nsIStackFrame; + readonly manager: nsIComponentManager; + readonly utils: nsIXPCComponents_Utils; + readonly ID: nsIXPCComponents_ID; + readonly Exception: nsIXPCComponents_Exception; + readonly Constructor: nsIXPCComponents_Constructor; + returnCode: any; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_attributes.idl + +interface nsIXPCTestObjectReadOnly extends nsISupports { + readonly strReadOnly: string; + readonly boolReadOnly: boolean; + readonly shortReadOnly: i16; + readonly longReadOnly: i32; + readonly floatReadOnly: float; + readonly charReadOnly: string; + readonly timeReadOnly: PRTime; +} + +interface nsIXPCTestObjectReadWrite extends nsISupports { + stringProperty: string; + booleanProperty: boolean; + shortProperty: i16; + longProperty: i32; + floatProperty: float; + charProperty: string; + timeProperty: PRTime; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_bug809674.idl + +interface nsIXPCTestBug809674 extends nsISupports { + addArgs(x: u32, y: u32): u32; + addSubMulArgs(x: u32, y: u32, subOut: OutParam<u32>, mulOut: OutParam<u32>): u32; + addVals(x: any, y: any): any; + methodNoArgs(): u32; + methodNoArgsNoRetVal(): void; + addMany(x1: u32, x2: u32, x3: u32, x4: u32, x5: u32, x6: u32, x7: u32, x8: u32): u32; + valProperty: any; + uintProperty: u32; + methodWithOptionalArgc(): void; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_cenums.idl + +} // global + +declare namespace nsIXPCTestCEnums { + +enum testFlagsExplicit { + shouldBe1Explicit = 1, + shouldBe2Explicit = 2, + shouldBe4Explicit = 4, + shouldBe8Explicit = 8, + shouldBe12Explicit = 12, +} + +enum testFlagsImplicit { + shouldBe0Implicit = 0, + shouldBe1Implicit = 1, + shouldBe2Implicit = 2, + shouldBe3Implicit = 3, + shouldBe5Implicit = 5, + shouldBe6Implicit = 6, + shouldBe2AgainImplicit = 2, + shouldBe3AgainImplicit = 3, +} + +} + +declare global { + +interface nsIXPCTestCEnums extends nsISupports, Enums<typeof nsIXPCTestCEnums.testFlagsExplicit & typeof nsIXPCTestCEnums.testFlagsImplicit> { + readonly testConst: 1; + + testCEnumInput(abc: nsIXPCTestCEnums.testFlagsExplicit): void; + testCEnumOutput(): nsIXPCTestCEnums.testFlagsExplicit; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_interfaces.idl + +interface nsIXPCTestInterfaceA extends nsISupports { + name: string; +} + +interface nsIXPCTestInterfaceB extends nsISupports { + name: string; +} + +interface nsIXPCTestInterfaceC extends nsISupports { + someInteger: i32; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_params.idl + +interface nsIXPCTestParams extends nsISupports { + testBoolean(a: boolean, b: InOutParam<boolean>): boolean; + testOctet(a: u8, b: InOutParam<u8>): u8; + testShort(a: i16, b: InOutParam<i16>): i16; + testLong(a: i32, b: InOutParam<i32>): i32; + testLongLong(a: i64, b: InOutParam<i64>): i64; + testUnsignedShort(a: u16, b: InOutParam<u16>): u16; + testUnsignedLong(a: u32, b: InOutParam<u32>): u32; + testUnsignedLongLong(a: u64, b: InOutParam<u64>): u64; + testFloat(a: float, b: InOutParam<float>): float; + testDouble(a: double, b: InOutParam<float>): double; + testChar(a: string, b: InOutParam<string>): string; + testString(a: string, b: InOutParam<string>): string; + testWchar(a: string, b: InOutParam<string>): string; + testWstring(a: string, b: InOutParam<string>): string; + testAString(a: string, b: InOutParam<string>): string; + testAUTF8String(a: string, b: InOutParam<string>): string; + testACString(a: string, b: InOutParam<string>): string; + testJsval(a: any, b: InOutParam<any>): any; + testShortSequence(a: i16[], b: InOutParam<i16[]>): i16[]; + testDoubleSequence(a: double[], b: InOutParam<double[]>): double[]; + testInterfaceSequence(a: nsIXPCTestInterfaceA[], b: InOutParam<nsIXPCTestInterfaceA[]>): nsIXPCTestInterfaceA[]; + testAStringSequence(a: string[], b: InOutParam<string[]>): string[]; + testACStringSequence(a: string[], b: InOutParam<string[]>): string[]; + testJsvalSequence(a: any[], b: InOutParam<any[]>): any[]; + testSequenceSequence(a: i16[][], b: InOutParam<i16[][]>): i16[][]; + testOptionalSequence(arr?: u8[]): u8[]; + testShortArray(aLength: u32, a: i16[], bLength: InOutParam<u32>, b: InOutParam<i16[]>, rvLength: OutParam<u32>): OutParam<i16[]>; + testDoubleArray(aLength: u32, a: double[], bLength: InOutParam<u32>, b: InOutParam<double[]>, rvLength: OutParam<u32>): OutParam<double[]>; + testStringArray(aLength: u32, a: string[], bLength: InOutParam<u32>, b: InOutParam<string[]>, rvLength: OutParam<u32>): OutParam<string[]>; + testWstringArray(aLength: u32, a: string[], bLength: InOutParam<u32>, b: InOutParam<string[]>, rvLength: OutParam<u32>): OutParam<string[]>; + testInterfaceArray(aLength: u32, a: nsIXPCTestInterfaceA[], bLength: InOutParam<u32>, b: InOutParam<nsIXPCTestInterfaceA[]>, rvLength: OutParam<u32>): OutParam<nsIXPCTestInterfaceA[]>; + testByteArrayOptionalLength(a: u8[], aLength?: u32): u32; + testSizedString(aLength: u32, a: string, bLength: InOutParam<u32>, b: InOutParam<string>, rvLength: OutParam<u32>): OutParam<string>; + testSizedWstring(aLength: u32, a: string, bLength: InOutParam<u32>, b: InOutParam<string>, rvLength: OutParam<u32>): OutParam<string>; + testJsvalArray(aLength: u32, a: any[], bLength: InOutParam<u32>, b: InOutParam<any[]>, rvLength: OutParam<u32>): OutParam<any[]>; + testOutAString(o: OutParam<string>): void; + testStringArrayOptionalSize(a: string[], aLength?: u32): string; + testOmittedOptionalOut(aJSObj: nsIXPCTestParams, aOut?: OutParam<nsIURI>): void; + readonly testNaN: double; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_returncode.idl + +interface nsIXPCTestReturnCodeParent extends nsISupports { + callChild(childBehavior: i32): nsresult; +} + +interface nsIXPCTestReturnCodeChild extends nsISupports { + readonly CHILD_SHOULD_THROW: 0; + readonly CHILD_SHOULD_RETURN_SUCCESS: 1; + readonly CHILD_SHOULD_RETURN_RESULTCODE: 2; + readonly CHILD_SHOULD_NEST_RESULTCODES: 3; + + doIt(behavior: i32): void; +} + +// https://searchfox.org/mozilla-central/source/js/xpconnect/tests/idl/xpctest_utils.idl + +type nsIXPCTestFunctionInterface = Callable<{ + echo(arg: string): string; +}> + +interface nsIXPCTestUtils extends nsISupports { + doubleWrapFunction(f: nsIXPCTestFunctionInterface): nsIXPCTestFunctionInterface; +} + +// https://searchfox.org/mozilla-central/source/dom/xul/nsIBrowserController.idl + +interface nsIBrowserController extends nsISupports { + enableDisableCommands(action: string, enabledCommands: string[], disabledCommands: string[]): void; +} + +// https://searchfox.org/mozilla-central/source/dom/xul/nsIController.idl + +interface nsIController extends nsISupports { + isCommandEnabled(command: string): boolean; + supportsCommand(command: string): boolean; + doCommand(command: string): void; + onEvent(eventName: string): void; +} + +interface nsICommandController extends nsISupports { + getCommandStateWithParams(command: string, aCommandParams: nsICommandParams): void; + doCommandWithParams(command: string, aCommandParams: nsICommandParams): void; + getSupportedCommands(): string[]; +} + +// https://searchfox.org/mozilla-central/source/dom/xul/nsIControllers.idl + +interface nsIControllers extends nsISupports { + getControllerForCommand(command: string): nsIController; + insertControllerAt(index: u32, controller: nsIController): void; + removeControllerAt(index: u32): nsIController; + getControllerAt(index: u32): nsIController; + appendController(controller: nsIController): void; + removeController(controller: nsIController): void; + getControllerId(controller: nsIController): u32; + getControllerById(controllerID: u32): nsIController; + getControllerCount(): u32; +} + +// https://searchfox.org/mozilla-central/source/toolkit/xre/nsINativeAppSupport.idl + +interface nsINativeAppSupport extends nsISupports { + start(): boolean; + enable(): void; + onLastWindowClosing(): void; + ReOpen(): void; +} + +// https://searchfox.org/mozilla-central/source/toolkit/xre/nsIWinAppHelper.idl + +interface nsIWinAppHelper extends nsISupports { + readonly userCanElevate: boolean; +} + +// https://searchfox.org/mozilla-central/source/toolkit/xre/nsIXREDirProvider.idl + +interface nsIXREDirProvider extends nsISupports { + setUserDataDirectory(aFile: nsIFile, aLocal: boolean): void; + getInstallHash(): string; +} + +// https://searchfox.org/mozilla-central/source/modules/libjar/zipwriter/nsIZipWriter.idl + +interface nsIZipWriter extends nsISupports { + readonly COMPRESSION_NONE: 0; + readonly COMPRESSION_FASTEST: 1; + readonly COMPRESSION_DEFAULT: 6; + readonly COMPRESSION_BEST: 9; + + comment: string; + readonly inQueue: boolean; + readonly file: nsIFile; + open(aFile: nsIFile, aIoFlags: i32): void; + getEntry(aZipEntry: string): nsIZipEntry; + hasEntry(aZipEntry: string): boolean; + addEntryDirectory(aZipEntry: string, aModTime: PRTime, aQueue: boolean): void; + addEntryFile(aZipEntry: string, aCompression: i32, aFile: nsIFile, aQueue: boolean): void; + addEntryChannel(aZipEntry: string, aModTime: PRTime, aCompression: i32, aChannel: nsIChannel, aQueue: boolean): void; + addEntryStream(aZipEntry: string, aModTime: PRTime, aCompression: i32, aStream: nsIInputStream, aQueue: boolean): void; + removeEntry(aZipEntry: string, aQueue: boolean): void; + processQueue(aObserver: nsIRequestObserver, aContext: nsISupports): void; + close(): void; + alignStoredFiles(aAlignSize: u16): void; +} + +interface nsIXPCComponents_Interfaces { + nsIInstalledApplication: nsJSIID<nsIInstalledApplication>; + nsIAboutThirdParty: nsJSIID<nsIAboutThirdParty>; + nsIAboutWindowsMessages: nsJSIID<nsIAboutWindowsMessages>; + nsIAccessibilityService: nsJSIID<nsIAccessibilityService>; + nsIAccessible: nsJSIID<nsIAccessible>; + nsIAccessibleAnnouncementEvent: nsJSIID<nsIAccessibleAnnouncementEvent>; + nsIAccessibleApplication: nsJSIID<nsIAccessibleApplication>; + nsIAccessibleCaretMoveEvent: nsJSIID<nsIAccessibleCaretMoveEvent>; + nsIAccessibleDocument: nsJSIID<nsIAccessibleDocument>; + nsIAccessibleEditableText: nsJSIID<nsIAccessibleEditableText>; + nsIAccessibleEvent: nsJSIID<nsIAccessibleEvent>; + nsIAccessibleHideEvent: nsJSIID<nsIAccessibleHideEvent>; + nsIAccessibleHyperLink: nsJSIID<nsIAccessibleHyperLink>; + nsIAccessibleHyperText: nsJSIID<nsIAccessibleHyperText>; + nsIAccessibleImage: nsJSIID<nsIAccessibleImage>; + nsIAccessibleObjectAttributeChangedEvent: nsJSIID<nsIAccessibleObjectAttributeChangedEvent>; + nsIAccessiblePivot: nsJSIID<nsIAccessiblePivot>; + nsIAccessibleTraversalRule: nsJSIID<nsIAccessibleTraversalRule>; + nsIAccessibleRelation: nsJSIID<nsIAccessibleRelation>; + nsIAccessibleRole: nsJSIID<nsIAccessibleRole>; + nsIAccessibleScrollingEvent: nsJSIID<nsIAccessibleScrollingEvent>; + nsIAccessibleSelectable: nsJSIID<nsIAccessibleSelectable>; + nsIAccessibleStateChangeEvent: nsJSIID<nsIAccessibleStateChangeEvent>; + nsIAccessibleStates: nsJSIID<nsIAccessibleStates>; + nsIAccessibleTable: nsJSIID<nsIAccessibleTable>; + nsIAccessibleTableCell: nsJSIID<nsIAccessibleTableCell>; + nsIAccessibleTableChangeEvent: nsJSIID<nsIAccessibleTableChangeEvent>; + nsIAccessibleText: nsJSIID<nsIAccessibleText>; + nsIAccessibleTextChangeEvent: nsJSIID<nsIAccessibleTextChangeEvent>; + nsIAccessibleTextLeafPoint: nsJSIID<nsIAccessibleTextLeafPoint>; + nsIAccessibleTextRange: nsJSIID<nsIAccessibleTextRange>; + nsIAccessibleTextSelectionChangeEvent: nsJSIID<nsIAccessibleTextSelectionChangeEvent>; + nsIAccessibleScrollType: nsJSIID<nsIAccessibleScrollType>; + nsIAccessibleCoordinateType: nsJSIID<nsIAccessibleCoordinateType>; + nsIAccessibleValue: nsJSIID<nsIAccessibleValue>; + nsIAlertNotificationImageListener: nsJSIID<nsIAlertNotificationImageListener>; + nsIAlertAction: nsJSIID<nsIAlertAction>; + nsIAlertNotification: nsJSIID<nsIAlertNotification>; + nsIAlertsService: nsJSIID<nsIAlertsService>; + nsIAlertsDoNotDisturb: nsJSIID<nsIAlertsDoNotDisturb>; + nsIAlertsIconData: nsJSIID<nsIAlertsIconData>; + nsIAlertsIconURI: nsJSIID<nsIAlertsIconURI>; + nsIWindowsAlertNotification: nsJSIID<nsIWindowsAlertNotification, typeof nsIWindowsAlertNotification.ImagePlacement>; + nsIWindowsAlertsService: nsJSIID<nsIWindowsAlertsService>; + nsIAppShellService: nsJSIID<nsIAppShellService>; + nsIAppWindow: nsJSIID<nsIAppWindow>; + nsIWindowMediator: nsJSIID<nsIWindowMediator>; + nsIWindowMediatorListener: nsJSIID<nsIWindowMediatorListener>; + nsIWindowlessBrowser: nsJSIID<nsIWindowlessBrowser>; + nsIXULBrowserWindow: nsJSIID<nsIXULBrowserWindow>; + nsIAppStartup: nsJSIID<nsIAppStartup, typeof nsIAppStartup.IDLShutdownPhase>; + nsIAutoCompleteController: nsJSIID<nsIAutoCompleteController>; + nsIAutoCompleteInput: nsJSIID<nsIAutoCompleteInput>; + nsIAutoCompletePopup: nsJSIID<nsIAutoCompletePopup>; + nsIAutoCompleteResult: nsJSIID<nsIAutoCompleteResult>; + nsIAutoCompleteSearch: nsJSIID<nsIAutoCompleteSearch>; + nsIAutoCompleteObserver: nsJSIID<nsIAutoCompleteObserver>; + nsIAutoCompleteSearchDescriptor: nsJSIID<nsIAutoCompleteSearchDescriptor>; + nsIAutoCompleteSimpleResult: nsJSIID<nsIAutoCompleteSimpleResult>; + nsIAutoCompleteSimpleResultListener: nsJSIID<nsIAutoCompleteSimpleResultListener>; + nsIAutoCompleteSimpleSearch: nsJSIID<nsIAutoCompleteSimpleSearch>; + nsIAutoplay: nsJSIID<nsIAutoplay>; + nsIHangDetails: nsJSIID<nsIHangDetails>; + nsIBits: nsJSIID<nsIBits>; + nsIBitsNewRequestCallback: nsJSIID<nsIBitsNewRequestCallback>; + nsIBitsRequest: nsJSIID<nsIBitsRequest>; + nsIBitsCallback: nsJSIID<nsIBitsCallback>; + nsIAboutNewTabService: nsJSIID<nsIAboutNewTabService>; + nsIBrowserHandler: nsJSIID<nsIBrowserHandler>; + nsIAddonPolicyService: nsJSIID<nsIAddonPolicyService>; + nsIAddonContentPolicy: nsJSIID<nsIAddonContentPolicy>; + nsIDomainPolicy: nsJSIID<nsIDomainPolicy>; + nsIDomainSet: nsJSIID<nsIDomainSet>; + nsIPrincipal: nsJSIID<nsIPrincipal>; + nsIScriptSecurityManager: nsJSIID<nsIScriptSecurityManager>; + nsICaptivePortalCallback: nsJSIID<nsICaptivePortalCallback>; + nsICaptivePortalDetector: nsJSIID<nsICaptivePortalDetector>; + nsICascadeFilter: nsJSIID<nsICascadeFilter>; + nsIChromeRegistry: nsJSIID<nsIChromeRegistry>; + nsIXULChromeRegistry: nsJSIID<nsIXULChromeRegistry>; + nsIToolkitChromeRegistry: nsJSIID<nsIToolkitChromeRegistry>; + nsICommandManager: nsJSIID<nsICommandManager>; + nsICommandParams: nsJSIID<nsICommandParams>; + nsIControllerCommand: nsJSIID<nsIControllerCommand>; + nsIControllerCommandTable: nsJSIID<nsIControllerCommandTable>; + nsIControllerContext: nsJSIID<nsIControllerContext>; + nsICommandLine: nsJSIID<nsICommandLine>; + nsICommandLineHandler: nsJSIID<nsICommandLineHandler>; + nsICommandLineValidator: nsJSIID<nsICommandLineValidator>; + nsIEditingSession: nsJSIID<nsIEditingSession>; + nsIEventListenerChange: nsJSIID<nsIEventListenerChange>; + nsIListenerChangeListener: nsJSIID<nsIListenerChangeListener>; + nsIEventListenerInfo: nsJSIID<nsIEventListenerInfo>; + nsIEventListenerService: nsJSIID<nsIEventListenerService>; + mozIGeckoMediaPluginChromeService: nsJSIID<mozIGeckoMediaPluginChromeService>; + mozIGeckoMediaPluginService: nsJSIID<mozIGeckoMediaPluginService>; + nsIDefaultAgent: nsJSIID<nsIDefaultAgent>; + nsIWindowsMutex: nsJSIID<nsIWindowsMutex>; + nsIWindowsMutexFactory: nsJSIID<nsIWindowsMutexFactory>; + nsIDocShell: nsJSIID<nsIDocShell, typeof nsIDocShell.DocShellEnumeratorDirection & typeof nsIDocShell.AppType & typeof nsIDocShell.BusyFlags & typeof nsIDocShell.LoadCommand & typeof nsIDocShell.MetaViewportOverride>; + nsIDocShellTreeItem: nsJSIID<nsIDocShellTreeItem>; + nsIDocShellTreeOwner: nsJSIID<nsIDocShellTreeOwner>; + nsIDocumentLoaderFactory: nsJSIID<nsIDocumentLoaderFactory>; + nsIDocumentViewer: nsJSIID<nsIDocumentViewer, typeof nsIDocumentViewer.PermitUnloadAction & typeof nsIDocumentViewer.PermitUnloadResult>; + nsIDocumentViewerEdit: nsJSIID<nsIDocumentViewerEdit>; + nsILoadContext: nsJSIID<nsILoadContext>; + nsILoadURIDelegate: nsJSIID<nsILoadURIDelegate>; + nsIPrivacyTransitionObserver: nsJSIID<nsIPrivacyTransitionObserver>; + nsIReflowObserver: nsJSIID<nsIReflowObserver>; + nsIRefreshURI: nsJSIID<nsIRefreshURI>; + nsITooltipListener: nsJSIID<nsITooltipListener>; + nsITooltipTextProvider: nsJSIID<nsITooltipTextProvider>; + nsIURIFixupInfo: nsJSIID<nsIURIFixupInfo>; + nsIURIFixup: nsJSIID<nsIURIFixup>; + nsIWebNavigation: nsJSIID<nsIWebNavigation>; + nsIWebNavigationInfo: nsJSIID<nsIWebNavigationInfo>; + nsIWebPageDescriptor: nsJSIID<nsIWebPageDescriptor>; + mozIDOMWindow: nsJSIID<mozIDOMWindow>; + mozIDOMWindowProxy: nsJSIID<mozIDOMWindowProxy>; + nsIContentPolicy: nsJSIID<nsIContentPolicy, typeof nsIContentPolicy.nsContentPolicyType>; + nsIDroppedLinkItem: nsJSIID<nsIDroppedLinkItem>; + nsIDroppedLinkHandler: nsJSIID<nsIDroppedLinkHandler>; + nsIEventSourceEventListener: nsJSIID<nsIEventSourceEventListener>; + nsIEventSourceEventService: nsJSIID<nsIEventSourceEventService>; + nsIImageLoadingContent: nsJSIID<nsIImageLoadingContent>; + nsIMessageSender: nsJSIID<nsIMessageSender>; + nsIObjectLoadingContent: nsJSIID<nsIObjectLoadingContent>; + nsIScriptableContentIterator: nsJSIID<nsIScriptableContentIterator, typeof nsIScriptableContentIterator.IteratorType>; + nsISelectionController: nsJSIID<nsISelectionController>; + nsISelectionDisplay: nsJSIID<nsISelectionDisplay>; + nsISelectionListener: nsJSIID<nsISelectionListener>; + nsISlowScriptDebugCallback: nsJSIID<nsISlowScriptDebugCallback>; + nsISlowScriptDebuggerStartupCallback: nsJSIID<nsISlowScriptDebuggerStartupCallback>; + nsISlowScriptDebugRemoteCallback: nsJSIID<nsISlowScriptDebugRemoteCallback>; + nsISlowScriptDebug: nsJSIID<nsISlowScriptDebug>; + nsIConsoleAPIStorage: nsJSIID<nsIConsoleAPIStorage>; + mozIRemoteLazyInputStream: nsJSIID<mozIRemoteLazyInputStream>; + nsIDOMProcessChild: nsJSIID<nsIDOMProcessChild>; + nsIDOMProcessParent: nsJSIID<nsIDOMProcessParent>; + nsIHangReport: nsJSIID<nsIHangReport>; + nsILoginDetectionService: nsJSIID<nsILoginDetectionService>; + nsISuspendedTypes: nsJSIID<nsISuspendedTypes>; + nsIBrowser: nsJSIID<nsIBrowser>; + nsIBrowserChild: nsJSIID<nsIBrowserChild>; + nsIOpenURIInFrameParams: nsJSIID<nsIOpenURIInFrameParams>; + nsIBrowserDOMWindow: nsJSIID<nsIBrowserDOMWindow>; + nsIBrowserUsage: nsJSIID<nsIBrowserUsage>; + nsIContentPermissionType: nsJSIID<nsIContentPermissionType>; + nsIContentPermissionRequest: nsJSIID<nsIContentPermissionRequest>; + nsIContentPermissionPrompt: nsJSIID<nsIContentPermissionPrompt>; + nsIContentPrefObserver: nsJSIID<nsIContentPrefObserver>; + nsIContentPrefService2: nsJSIID<nsIContentPrefService2>; + nsIContentPrefCallback2: nsJSIID<nsIContentPrefCallback2>; + nsIContentPref: nsJSIID<nsIContentPref>; + nsIContentProcessInfo: nsJSIID<nsIContentProcessInfo>; + nsIContentProcessProvider: nsJSIID<nsIContentProcessProvider>; + nsIDOMGlobalPropertyInitializer: nsJSIID<nsIDOMGlobalPropertyInitializer>; + nsIDOMWindow: nsJSIID<nsIDOMWindow>; + nsIDOMWindowUtils: nsJSIID<nsIDOMWindowUtils>; + nsITranslationNodeList: nsJSIID<nsITranslationNodeList>; + nsIJSRAIIHelper: nsJSIID<nsIJSRAIIHelper>; + nsIFocusManager: nsJSIID<nsIFocusManager>; + nsIPermissionDelegateHandler: nsJSIID<nsIPermissionDelegateHandler>; + nsIQueryContentEventResult: nsJSIID<nsIQueryContentEventResult>; + nsIRemoteTab: nsJSIID<nsIRemoteTab, typeof nsIRemoteTab.NavigationType>; + nsIServiceWorkerUnregisterCallback: nsJSIID<nsIServiceWorkerUnregisterCallback>; + nsIServiceWorkerInfo: nsJSIID<nsIServiceWorkerInfo>; + nsIServiceWorkerRegistrationInfoListener: nsJSIID<nsIServiceWorkerRegistrationInfoListener>; + nsIServiceWorkerRegistrationInfo: nsJSIID<nsIServiceWorkerRegistrationInfo>; + nsIServiceWorkerManagerListener: nsJSIID<nsIServiceWorkerManagerListener>; + nsIServiceWorkerManager: nsJSIID<nsIServiceWorkerManager>; + nsIStructuredCloneContainer: nsJSIID<nsIStructuredCloneContainer>; + nsITextInputProcessor: nsJSIID<nsITextInputProcessor>; + nsITextInputProcessorNotification: nsJSIID<nsITextInputProcessorNotification>; + nsITextInputProcessorCallback: nsJSIID<nsITextInputProcessorCallback>; + nsIScriptErrorNote: nsJSIID<nsIScriptErrorNote>; + nsIScriptError: nsJSIID<nsIScriptError>; + nsIDOMGeoPosition: nsJSIID<nsIDOMGeoPosition>; + nsIDOMGeoPositionCallback: nsJSIID<nsIDOMGeoPositionCallback>; + nsIDOMGeoPositionCoords: nsJSIID<nsIDOMGeoPositionCoords>; + nsIDOMGeoPositionErrorCallback: nsJSIID<nsIDOMGeoPositionErrorCallback>; + nsIIdentityCredentialPromptService: nsJSIID<nsIIdentityCredentialPromptService>; + nsIIdentityCredentialStorageService: nsJSIID<nsIIdentityCredentialStorageService>; + nsIIDBPermissionsRequest: nsJSIID<nsIIDBPermissionsRequest>; + nsILocalStorageManager: nsJSIID<nsILocalStorageManager>; + nsIAudioDeviceInfo: nsJSIID<nsIAudioDeviceInfo>; + nsIMediaDevice: nsJSIID<nsIMediaDevice>; + nsIMediaManagerService: nsJSIID<nsIMediaManagerService>; + nsITCPSocketCallback: nsJSIID<nsITCPSocketCallback>; + nsIUDPSocketInternal: nsJSIID<nsIUDPSocketInternal>; + nsINotificationStorageCallback: nsJSIID<nsINotificationStorageCallback>; + nsINotificationStorage: nsJSIID<nsINotificationStorage>; + nsIPaymentResponseData: nsJSIID<nsIPaymentResponseData>; + nsIGeneralResponseData: nsJSIID<nsIGeneralResponseData>; + nsIBasicCardResponseData: nsJSIID<nsIBasicCardResponseData>; + nsIPaymentActionResponse: nsJSIID<nsIPaymentActionResponse>; + nsIPaymentCanMakeActionResponse: nsJSIID<nsIPaymentCanMakeActionResponse>; + nsIPaymentShowActionResponse: nsJSIID<nsIPaymentShowActionResponse>; + nsIPaymentAbortActionResponse: nsJSIID<nsIPaymentAbortActionResponse>; + nsIPaymentCompleteActionResponse: nsJSIID<nsIPaymentCompleteActionResponse>; + nsIMethodChangeDetails: nsJSIID<nsIMethodChangeDetails>; + nsIGeneralChangeDetails: nsJSIID<nsIGeneralChangeDetails>; + nsIBasicCardChangeDetails: nsJSIID<nsIBasicCardChangeDetails>; + nsIPaymentAddress: nsJSIID<nsIPaymentAddress>; + nsIPaymentMethodData: nsJSIID<nsIPaymentMethodData>; + nsIPaymentCurrencyAmount: nsJSIID<nsIPaymentCurrencyAmount>; + nsIPaymentItem: nsJSIID<nsIPaymentItem>; + nsIPaymentDetailsModifier: nsJSIID<nsIPaymentDetailsModifier>; + nsIPaymentShippingOption: nsJSIID<nsIPaymentShippingOption>; + nsIPaymentDetails: nsJSIID<nsIPaymentDetails>; + nsIPaymentOptions: nsJSIID<nsIPaymentOptions>; + nsIPaymentRequest: nsJSIID<nsIPaymentRequest>; + nsIPaymentRequestService: nsJSIID<nsIPaymentRequestService>; + nsIPaymentUIService: nsJSIID<nsIPaymentUIService>; + nsIDOMMozWakeLockListener: nsJSIID<nsIDOMMozWakeLockListener>; + nsIPowerManagerService: nsJSIID<nsIPowerManagerService>; + nsIWakeLock: nsJSIID<nsIWakeLock>; + nsIPushErrorReporter: nsJSIID<nsIPushErrorReporter>; + nsIPushNotifier: nsJSIID<nsIPushNotifier>; + nsIPushData: nsJSIID<nsIPushData>; + nsIPushMessage: nsJSIID<nsIPushMessage>; + nsIPushSubscription: nsJSIID<nsIPushSubscription>; + nsIPushSubscriptionCallback: nsJSIID<nsIPushSubscriptionCallback>; + nsIUnsubscribeResultCallback: nsJSIID<nsIUnsubscribeResultCallback>; + nsIPushClearResultCallback: nsJSIID<nsIPushClearResultCallback>; + nsIPushService: nsJSIID<nsIPushService>; + nsIPushQuotaManager: nsJSIID<nsIPushQuotaManager>; + nsIQuotaUsageCallback: nsJSIID<nsIQuotaUsageCallback>; + nsIQuotaCallback: nsJSIID<nsIQuotaCallback>; + nsIQuotaManagerService: nsJSIID<nsIQuotaManagerService>; + nsIQuotaRequestBase: nsJSIID<nsIQuotaRequestBase>; + nsIQuotaUsageRequest: nsJSIID<nsIQuotaUsageRequest>; + nsIQuotaRequest: nsJSIID<nsIQuotaRequest>; + nsIQuotaFullOriginMetadataResult: nsJSIID<nsIQuotaFullOriginMetadataResult>; + nsIQuotaUsageResult: nsJSIID<nsIQuotaUsageResult>; + nsIQuotaOriginUsageResult: nsJSIID<nsIQuotaOriginUsageResult>; + nsIQuotaEstimateResult: nsJSIID<nsIQuotaEstimateResult>; + nsIContentSecurityManager: nsJSIID<nsIContentSecurityManager>; + nsIContentSecurityPolicy: nsJSIID<nsIContentSecurityPolicy, typeof nsIContentSecurityPolicy.CSPDirective>; + nsICSPEventListener: nsJSIID<nsICSPEventListener>; + nsIReferrerInfo: nsJSIID<nsIReferrerInfo, typeof nsIReferrerInfo.ReferrerPolicyIDL>; + nsIHttpsOnlyModePermission: nsJSIID<nsIHttpsOnlyModePermission>; + nsIDocumentEncoderNodeFixup: nsJSIID<nsIDocumentEncoderNodeFixup>; + nsIDocumentEncoder: nsJSIID<nsIDocumentEncoder>; + nsIWebProtocolHandlerRegistrar: nsJSIID<nsIWebProtocolHandlerRegistrar>; + nsISDBCallback: nsJSIID<nsISDBCallback>; + nsISDBCloseCallback: nsJSIID<nsISDBCloseCallback>; + nsISDBConnection: nsJSIID<nsISDBConnection>; + nsISDBRequest: nsJSIID<nsISDBRequest>; + nsISDBResult: nsJSIID<nsISDBResult>; + nsIDOMStorageManager: nsJSIID<nsIDOMStorageManager>; + nsIStorageActivityService: nsJSIID<nsIStorageActivityService>; + nsISessionStorageService: nsJSIID<nsISessionStorageService>; + nsIOSPermissionRequest: nsJSIID<nsIOSPermissionRequest>; + nsICredentialParameters: nsJSIID<nsICredentialParameters>; + nsIWebAuthnAutoFillEntry: nsJSIID<nsIWebAuthnAutoFillEntry>; + nsIWebAuthnService: nsJSIID<nsIWebAuthnService>; + nsISpeechTaskCallback: nsJSIID<nsISpeechTaskCallback>; + nsISpeechTask: nsJSIID<nsISpeechTask>; + nsISpeechService: nsJSIID<nsISpeechService>; + nsISynthVoiceRegistry: nsJSIID<nsISynthVoiceRegistry>; + nsIWorkerChannelLoadInfo: nsJSIID<nsIWorkerChannelLoadInfo>; + nsIWorkerChannelInfo: nsJSIID<nsIWorkerChannelInfo>; + nsIWorkerDebuggerListener: nsJSIID<nsIWorkerDebuggerListener>; + nsIWorkerDebugger: nsJSIID<nsIWorkerDebugger>; + nsIWorkerDebuggerManagerListener: nsJSIID<nsIWorkerDebuggerManagerListener>; + nsIWorkerDebuggerManager: nsJSIID<nsIWorkerDebuggerManager>; + txIEXSLTFunctions: nsJSIID<txIEXSLTFunctions>; + nsIDOMXULButtonElement: nsJSIID<nsIDOMXULButtonElement>; + nsIDOMXULCommandDispatcher: nsJSIID<nsIDOMXULCommandDispatcher>; + nsIDOMXULContainerItemElement: nsJSIID<nsIDOMXULContainerItemElement>; + nsIDOMXULContainerElement: nsJSIID<nsIDOMXULContainerElement>; + nsIDOMXULControlElement: nsJSIID<nsIDOMXULControlElement>; + nsIDOMXULMenuListElement: nsJSIID<nsIDOMXULMenuListElement>; + nsIDOMXULMultiSelectControlElement: nsJSIID<nsIDOMXULMultiSelectControlElement>; + nsIDOMXULRadioGroupElement: nsJSIID<nsIDOMXULRadioGroupElement>; + nsIDOMXULRelatedElement: nsJSIID<nsIDOMXULRelatedElement>; + nsIDOMXULSelectControlElement: nsJSIID<nsIDOMXULSelectControlElement>; + nsIDOMXULSelectControlItemElement: nsJSIID<nsIDOMXULSelectControlItemElement>; + mozIDownloadPlatform: nsJSIID<mozIDownloadPlatform>; + nsIDocumentStateListener: nsJSIID<nsIDocumentStateListener>; + nsIEditActionListener: nsJSIID<nsIEditActionListener>; + nsIEditor: nsJSIID<nsIEditor>; + nsIEditorMailSupport: nsJSIID<nsIEditorMailSupport>; + nsIEditorSpellCheck: nsJSIID<nsIEditorSpellCheck>; + nsIEditorSpellCheckCallback: nsJSIID<nsIEditorSpellCheckCallback>; + nsIHTMLAbsPosEditor: nsJSIID<nsIHTMLAbsPosEditor>; + nsIHTMLEditor: nsJSIID<nsIHTMLEditor>; + nsIHTMLInlineTableEditor: nsJSIID<nsIHTMLInlineTableEditor>; + nsIHTMLObjectResizer: nsJSIID<nsIHTMLObjectResizer>; + nsITableEditor: nsJSIID<nsITableEditor>; + nsIEnterprisePolicies: nsJSIID<nsIEnterprisePolicies>; + amIAddonManagerStartup: nsJSIID<amIAddonManagerStartup>; + amIWebInstallPrompt: nsJSIID<amIWebInstallPrompt>; + nsIContentDispatchChooser: nsJSIID<nsIContentDispatchChooser>; + nsIExternalHelperAppService: nsJSIID<nsIExternalHelperAppService>; + nsPIExternalAppLauncher: nsJSIID<nsPIExternalAppLauncher>; + nsIHelperAppLauncher: nsJSIID<nsIHelperAppLauncher>; + nsIExternalProtocolService: nsJSIID<nsIExternalProtocolService>; + nsIHandlerService: nsJSIID<nsIHandlerService>; + nsIHelperAppLauncherDialog: nsJSIID<nsIHelperAppLauncherDialog>; + nsISharingHandlerApp: nsJSIID<nsISharingHandlerApp>; + nsITypeAheadFind: nsJSIID<nsITypeAheadFind>; + nsIFOG: nsJSIID<nsIFOG>; + nsIGleanPingTestCallback: nsJSIID<nsIGleanPingTestCallback>; + nsIGleanPing: nsJSIID<nsIGleanPing>; + nsIFontEnumerator: nsJSIID<nsIFontEnumerator>; + nsIParserUtils: nsJSIID<nsIParserUtils>; + nsIExpatSink: nsJSIID<nsIExpatSink>; + nsISFVBareItem: nsJSIID<nsISFVBareItem>; + nsISFVInteger: nsJSIID<nsISFVInteger>; + nsISFVString: nsJSIID<nsISFVString>; + nsISFVBool: nsJSIID<nsISFVBool>; + nsISFVDecimal: nsJSIID<nsISFVDecimal>; + nsISFVToken: nsJSIID<nsISFVToken>; + nsISFVByteSeq: nsJSIID<nsISFVByteSeq>; + nsISFVParams: nsJSIID<nsISFVParams>; + nsISFVParametrizable: nsJSIID<nsISFVParametrizable>; + nsISFVItemOrInnerList: nsJSIID<nsISFVItemOrInnerList>; + nsISFVSerialize: nsJSIID<nsISFVSerialize>; + nsISFVItem: nsJSIID<nsISFVItem>; + nsISFVInnerList: nsJSIID<nsISFVInnerList>; + nsISFVList: nsJSIID<nsISFVList>; + nsISFVDictionary: nsJSIID<nsISFVDictionary>; + nsISFVService: nsJSIID<nsISFVService>; + imgICache: nsJSIID<imgICache>; + imgIContainer: nsJSIID<imgIContainer, typeof imgIContainer.DecodeResult>; + imgIContainerDebug: nsJSIID<imgIContainerDebug>; + imgIEncoder: nsJSIID<imgIEncoder>; + imgILoader: nsJSIID<imgILoader>; + imgINotificationObserver: nsJSIID<imgINotificationObserver>; + imgIRequest: nsJSIID<imgIRequest>; + imgIScriptedNotificationObserver: nsJSIID<imgIScriptedNotificationObserver>; + imgITools: nsJSIID<imgITools>; + imgIContainerCallback: nsJSIID<imgIContainerCallback>; + nsIMozIconURI: nsJSIID<nsIMozIconURI>; + inIDeepTreeWalker: nsJSIID<inIDeepTreeWalker>; + nsIStringBundle: nsJSIID<nsIStringBundle>; + nsIStringBundleService: nsJSIID<nsIStringBundleService>; + nsIJARChannel: nsJSIID<nsIJARChannel>; + nsIJARURI: nsJSIID<nsIJARURI>; + nsIZipEntry: nsJSIID<nsIZipEntry>; + nsIZipReader: nsJSIID<nsIZipReader>; + nsIZipReaderCache: nsJSIID<nsIZipReaderCache>; + IJSDebugger: nsJSIID<IJSDebugger>; + nsIJSInspector: nsJSIID<nsIJSInspector>; + nsIKeyValueService: nsJSIID<nsIKeyValueService, typeof nsIKeyValueService.RecoveryStrategy>; + nsIKeyValueDatabase: nsJSIID<nsIKeyValueDatabase>; + nsIKeyValuePair: nsJSIID<nsIKeyValuePair>; + nsIKeyValueEnumerator: nsJSIID<nsIKeyValueEnumerator>; + nsIKeyValueDatabaseCallback: nsJSIID<nsIKeyValueDatabaseCallback>; + nsIKeyValueEnumeratorCallback: nsJSIID<nsIKeyValueEnumeratorCallback>; + nsIKeyValuePairCallback: nsJSIID<nsIKeyValuePairCallback>; + nsIKeyValueVariantCallback: nsJSIID<nsIKeyValueVariantCallback>; + nsIKeyValueVoidCallback: nsJSIID<nsIKeyValueVoidCallback>; + nsILayoutHistoryState: nsJSIID<nsILayoutHistoryState>; + nsIPreloadedStyleSheet: nsJSIID<nsIPreloadedStyleSheet>; + nsIStyleSheetService: nsJSIID<nsIStyleSheetService>; + nsITreeSelection: nsJSIID<nsITreeSelection>; + nsITreeView: nsJSIID<nsITreeView>; + mozILocaleService: nsJSIID<mozILocaleService>; + mozIOSPreferences: nsJSIID<mozIOSPreferences>; + nsILoginAutoCompleteSearch: nsJSIID<nsILoginAutoCompleteSearch>; + nsILoginInfo: nsJSIID<nsILoginInfo>; + nsILoginSearchCallback: nsJSIID<nsILoginSearchCallback>; + nsILoginManager: nsJSIID<nsILoginManager>; + nsILoginManagerAuthPrompter: nsJSIID<nsILoginManagerAuthPrompter>; + nsILoginManagerCrypto: nsJSIID<nsILoginManagerCrypto>; + nsILoginManagerPrompter: nsJSIID<nsILoginManagerPrompter>; + nsILoginMetaInfo: nsJSIID<nsILoginMetaInfo>; + nsIPromptInstance: nsJSIID<nsIPromptInstance>; + nsIEdgeMigrationUtils: nsJSIID<nsIEdgeMigrationUtils>; + nsIMIMEHeaderParam: nsJSIID<nsIMIMEHeaderParam>; + nsIHandlerInfo: nsJSIID<nsIHandlerInfo>; + nsIMIMEInfo: nsJSIID<nsIMIMEInfo>; + nsIHandlerApp: nsJSIID<nsIHandlerApp>; + nsILocalHandlerApp: nsJSIID<nsILocalHandlerApp>; + nsIWebHandlerApp: nsJSIID<nsIWebHandlerApp>; + nsIDBusHandlerApp: nsJSIID<nsIDBusHandlerApp>; + nsIMIMEService: nsJSIID<nsIMIMEService>; + nsIFind: nsJSIID<nsIFind>; + nsIFindService: nsJSIID<nsIFindService>; + nsIWebBrowserFind: nsJSIID<nsIWebBrowserFind>; + nsIWebBrowserFindInFrames: nsJSIID<nsIWebBrowserFindInFrames>; + mozIMozIntl: nsJSIID<mozIMozIntl>; + mozIMozIntlHelper: nsJSIID<mozIMozIntlHelper>; + mozIThirdPartyUtil: nsJSIID<mozIThirdPartyUtil>; + nsIArrayBufferInputStream: nsJSIID<nsIArrayBufferInputStream>; + nsIAsyncStreamCopier: nsJSIID<nsIAsyncStreamCopier>; + nsIAsyncStreamCopier2: nsJSIID<nsIAsyncStreamCopier2>; + nsIAsyncVerifyRedirectCallback: nsJSIID<nsIAsyncVerifyRedirectCallback>; + nsIAuthInformation: nsJSIID<nsIAuthInformation>; + nsIAuthPrompt: nsJSIID<nsIAuthPrompt>; + nsIAuthPrompt2: nsJSIID<nsIAuthPrompt2>; + nsIAuthPromptAdapterFactory: nsJSIID<nsIAuthPromptAdapterFactory>; + nsIAuthPromptCallback: nsJSIID<nsIAuthPromptCallback>; + nsIAuthPromptProvider: nsJSIID<nsIAuthPromptProvider>; + nsIBackgroundFileSaver: nsJSIID<nsIBackgroundFileSaver>; + nsIBackgroundFileSaverObserver: nsJSIID<nsIBackgroundFileSaverObserver>; + nsIBufferedInputStream: nsJSIID<nsIBufferedInputStream>; + nsIBufferedOutputStream: nsJSIID<nsIBufferedOutputStream>; + nsIByteRangeRequest: nsJSIID<nsIByteRangeRequest>; + nsIInputStreamReceiver: nsJSIID<nsIInputStreamReceiver>; + nsICacheInfoChannel: nsJSIID<nsICacheInfoChannel, typeof nsICacheInfoChannel.PreferredAlternativeDataDeliveryType>; + nsICachingChannel: nsJSIID<nsICachingChannel>; + nsICancelable: nsJSIID<nsICancelable>; + nsICaptivePortalServiceCallback: nsJSIID<nsICaptivePortalServiceCallback>; + nsICaptivePortalService: nsJSIID<nsICaptivePortalService>; + nsIChannel: nsJSIID<nsIChannel>; + nsIIdentChannel: nsJSIID<nsIIdentChannel>; + nsIChannelEventSink: nsJSIID<nsIChannelEventSink>; + nsIChildChannel: nsJSIID<nsIChildChannel>; + nsIClassOfService: nsJSIID<nsIClassOfService>; + nsIClassifiedChannel: nsJSIID<nsIClassifiedChannel, typeof nsIClassifiedChannel.ClassificationFlags>; + nsIContentSniffer: nsJSIID<nsIContentSniffer>; + nsIDHCPClient: nsJSIID<nsIDHCPClient>; + nsINetDashboardCallback: nsJSIID<nsINetDashboardCallback>; + nsIDashboard: nsJSIID<nsIDashboard>; + nsIDownloader: nsJSIID<nsIDownloader>; + nsIDownloadObserver: nsJSIID<nsIDownloadObserver>; + nsIEncodedChannel: nsJSIID<nsIEncodedChannel>; + nsIExternalProtocolHandler: nsJSIID<nsIExternalProtocolHandler>; + nsIFileInputStream: nsJSIID<nsIFileInputStream>; + nsIFileOutputStream: nsJSIID<nsIFileOutputStream>; + nsIFileRandomAccessStream: nsJSIID<nsIFileRandomAccessStream>; + nsIFileMetadata: nsJSIID<nsIFileMetadata>; + nsIAsyncFileMetadata: nsJSIID<nsIAsyncFileMetadata>; + nsIFileMetadataCallback: nsJSIID<nsIFileMetadataCallback>; + nsIFileURL: nsJSIID<nsIFileURL>; + nsIFileURLMutator: nsJSIID<nsIFileURLMutator>; + nsIFormPOSTActionChannel: nsJSIID<nsIFormPOSTActionChannel>; + nsIHttpPushListener: nsJSIID<nsIHttpPushListener>; + nsIIOService: nsJSIID<nsIIOService>; + nsIIncrementalDownload: nsJSIID<nsIIncrementalDownload>; + nsIIncrementalStreamLoaderObserver: nsJSIID<nsIIncrementalStreamLoaderObserver>; + nsIIncrementalStreamLoader: nsJSIID<nsIIncrementalStreamLoader>; + nsIInputStreamChannel: nsJSIID<nsIInputStreamChannel>; + nsIInputStreamPump: nsJSIID<nsIInputStreamPump>; + nsIInterceptionInfo: nsJSIID<nsIInterceptionInfo>; + nsILoadContextInfo: nsJSIID<nsILoadContextInfo>; + nsILoadContextInfoFactory: nsJSIID<nsILoadContextInfoFactory>; + nsILoadGroup: nsJSIID<nsILoadGroup>; + nsILoadGroupChild: nsJSIID<nsILoadGroupChild>; + nsILoadInfo: nsJSIID<nsILoadInfo, typeof nsILoadInfo.StoragePermissionState & typeof nsILoadInfo.CrossOriginOpenerPolicy & typeof nsILoadInfo.CrossOriginEmbedderPolicy>; + nsIMIMEInputStream: nsJSIID<nsIMIMEInputStream>; + nsIMultiPartChannel: nsJSIID<nsIMultiPartChannel>; + nsIMultiPartChannelListener: nsJSIID<nsIMultiPartChannelListener>; + nsINestedURI: nsJSIID<nsINestedURI>; + nsINestedURIMutator: nsJSIID<nsINestedURIMutator>; + nsINestedAboutURIMutator: nsJSIID<nsINestedAboutURIMutator>; + nsIJSURIMutator: nsJSIID<nsIJSURIMutator>; + nsINetAddr: nsJSIID<nsINetAddr>; + nsINetUtil: nsJSIID<nsINetUtil>; + nsINetworkConnectivityService: nsJSIID<nsINetworkConnectivityService, typeof nsINetworkConnectivityService.ConnectivityState>; + nsIListNetworkAddressesListener: nsJSIID<nsIListNetworkAddressesListener>; + nsIGetHostnameListener: nsJSIID<nsIGetHostnameListener>; + nsINetworkInfoService: nsJSIID<nsINetworkInfoService>; + nsIInterceptedBodyCallback: nsJSIID<nsIInterceptedBodyCallback>; + nsIInterceptedChannel: nsJSIID<nsIInterceptedChannel>; + nsINetworkInterceptController: nsJSIID<nsINetworkInterceptController>; + nsINetworkLinkService: nsJSIID<nsINetworkLinkService>; + nsINetworkPredictor: nsJSIID<nsINetworkPredictor>; + nsINetworkPredictorVerifier: nsJSIID<nsINetworkPredictorVerifier>; + nsINullChannel: nsJSIID<nsINullChannel>; + nsIParentChannel: nsJSIID<nsIParentChannel>; + nsIParentRedirectingChannel: nsJSIID<nsIParentRedirectingChannel>; + nsIPermission: nsJSIID<nsIPermission>; + nsIPermissionManager: nsJSIID<nsIPermissionManager>; + nsIPrivateBrowsingChannel: nsJSIID<nsIPrivateBrowsingChannel>; + nsIProgressEventSink: nsJSIID<nsIProgressEventSink>; + nsIPrompt: nsJSIID<nsIPrompt>; + nsIProtocolHandlerWithDynamicFlags: nsJSIID<nsIProtocolHandlerWithDynamicFlags>; + nsIProtocolHandler: nsJSIID<nsIProtocolHandler>; + nsIProtocolProxyCallback: nsJSIID<nsIProtocolProxyCallback>; + nsIProxyProtocolFilterResult: nsJSIID<nsIProxyProtocolFilterResult>; + nsIProtocolProxyFilter: nsJSIID<nsIProtocolProxyFilter>; + nsIProtocolProxyChannelFilter: nsJSIID<nsIProtocolProxyChannelFilter>; + nsIProxyConfigChangedCallback: nsJSIID<nsIProxyConfigChangedCallback>; + nsIProtocolProxyService: nsJSIID<nsIProtocolProxyService>; + nsIProtocolProxyService2: nsJSIID<nsIProtocolProxyService2>; + nsIProxiedChannel: nsJSIID<nsIProxiedChannel>; + nsIProxiedProtocolHandler: nsJSIID<nsIProxiedProtocolHandler>; + nsIProxyInfo: nsJSIID<nsIProxyInfo>; + nsIRandomGenerator: nsJSIID<nsIRandomGenerator>; + nsIRedirectChannelRegistrar: nsJSIID<nsIRedirectChannelRegistrar>; + nsIRedirectHistoryEntry: nsJSIID<nsIRedirectHistoryEntry>; + nsIRedirectResultListener: nsJSIID<nsIRedirectResultListener>; + nsIRequest: nsJSIID<nsIRequest, typeof nsIRequest.TRRMode>; + nsIRequestObserver: nsJSIID<nsIRequestObserver>; + nsIRequestObserverProxy: nsJSIID<nsIRequestObserverProxy>; + nsIResumableChannel: nsJSIID<nsIResumableChannel>; + nsISecCheckWrapChannel: nsJSIID<nsISecCheckWrapChannel>; + nsISecureBrowserUI: nsJSIID<nsISecureBrowserUI>; + nsISensitiveInfoHiddenURI: nsJSIID<nsISensitiveInfoHiddenURI>; + nsISerializationHelper: nsJSIID<nsISerializationHelper>; + nsIServerSocket: nsJSIID<nsIServerSocket>; + nsIServerSocketListener: nsJSIID<nsIServerSocketListener>; + nsISimpleStreamListener: nsJSIID<nsISimpleStreamListener>; + nsISimpleURIMutator: nsJSIID<nsISimpleURIMutator>; + nsISocketTransport: nsJSIID<nsISocketTransport>; + nsISTSShutdownObserver: nsJSIID<nsISTSShutdownObserver>; + nsISocketTransportService: nsJSIID<nsISocketTransportService>; + nsIRoutedSocketTransportService: nsJSIID<nsIRoutedSocketTransportService>; + nsISpeculativeConnect: nsJSIID<nsISpeculativeConnect>; + nsIStandardURL: nsJSIID<nsIStandardURL>; + nsIStandardURLMutator: nsJSIID<nsIStandardURLMutator>; + nsIStreamListener: nsJSIID<nsIStreamListener>; + nsIStreamListenerTee: nsJSIID<nsIStreamListenerTee>; + nsIStreamLoaderObserver: nsJSIID<nsIStreamLoaderObserver>; + nsIStreamLoader: nsJSIID<nsIStreamLoader>; + nsIStreamTransportService: nsJSIID<nsIStreamTransportService>; + nsISyncStreamListener: nsJSIID<nsISyncStreamListener>; + nsISystemProxySettings: nsJSIID<nsISystemProxySettings>; + nsITLSServerSocket: nsJSIID<nsITLSServerSocket>; + nsITLSClientStatus: nsJSIID<nsITLSClientStatus>; + nsITLSServerConnectionInfo: nsJSIID<nsITLSServerConnectionInfo>; + nsITLSServerSecurityObserver: nsJSIID<nsITLSServerSecurityObserver>; + nsIThreadRetargetableStreamListener: nsJSIID<nsIThreadRetargetableStreamListener>; + nsIInputChannelThrottleQueue: nsJSIID<nsIInputChannelThrottleQueue>; + nsIThrottledInputChannel: nsJSIID<nsIThrottledInputChannel>; + nsIServerTiming: nsJSIID<nsIServerTiming>; + nsITimedChannel: nsJSIID<nsITimedChannel>; + nsITraceableChannel: nsJSIID<nsITraceableChannel>; + nsITransport: nsJSIID<nsITransport>; + nsITransportEventSink: nsJSIID<nsITransportEventSink>; + nsIUDPSocket: nsJSIID<nsIUDPSocket>; + nsIUDPSocketListener: nsJSIID<nsIUDPSocketListener>; + nsIUDPMessage: nsJSIID<nsIUDPMessage>; + nsIURI: nsJSIID<nsIURI>; + nsIURISetSpec: nsJSIID<nsIURISetSpec>; + nsIURISetters: nsJSIID<nsIURISetters>; + nsIURIMutator: nsJSIID<nsIURIMutator>; + nsIURIWithSpecialOrigin: nsJSIID<nsIURIWithSpecialOrigin>; + nsIURL: nsJSIID<nsIURL>; + nsIURLMutator: nsJSIID<nsIURLMutator>; + nsIURLParser: nsJSIID<nsIURLParser>; + nsIUploadChannel: nsJSIID<nsIUploadChannel>; + nsIUploadChannel2: nsJSIID<nsIUploadChannel2>; + nsPISocketTransportService: nsJSIID<nsPISocketTransportService>; + nsIAboutModule: nsJSIID<nsIAboutModule>; + nsICacheEntry: nsJSIID<nsICacheEntry>; + nsICacheEntryMetaDataVisitor: nsJSIID<nsICacheEntryMetaDataVisitor>; + nsICacheEntryDoomCallback: nsJSIID<nsICacheEntryDoomCallback>; + nsICacheEntryOpenCallback: nsJSIID<nsICacheEntryOpenCallback>; + nsICachePurgeLock: nsJSIID<nsICachePurgeLock>; + nsICacheStorage: nsJSIID<nsICacheStorage>; + nsICacheStorageService: nsJSIID<nsICacheStorageService>; + nsICacheStorageConsumptionObserver: nsJSIID<nsICacheStorageConsumptionObserver>; + nsICacheStorageVisitor: nsJSIID<nsICacheStorageVisitor>; + nsICacheTesting: nsJSIID<nsICacheTesting>; + nsICookie: nsJSIID<nsICookie, typeof nsICookie.schemeType>; + nsICookieJarSettings: nsJSIID<nsICookieJarSettings>; + nsICookieManager: nsJSIID<nsICookieManager>; + nsICookieNotification: nsJSIID<nsICookieNotification, typeof nsICookieNotification.Action>; + nsICookiePermission: nsJSIID<nsICookiePermission>; + nsICookieTransactionCallback: nsJSIID<nsICookieTransactionCallback>; + nsICookieService: nsJSIID<nsICookieService>; + nsIDNSAdditionalInfo: nsJSIID<nsIDNSAdditionalInfo>; + nsIDNSByTypeRecord: nsJSIID<nsIDNSByTypeRecord>; + nsIDNSTXTRecord: nsJSIID<nsIDNSTXTRecord>; + nsISVCParam: nsJSIID<nsISVCParam>; + nsISVCParamAlpn: nsJSIID<nsISVCParamAlpn>; + nsISVCParamNoDefaultAlpn: nsJSIID<nsISVCParamNoDefaultAlpn>; + nsISVCParamPort: nsJSIID<nsISVCParamPort>; + nsISVCParamIPv4Hint: nsJSIID<nsISVCParamIPv4Hint>; + nsISVCParamEchConfig: nsJSIID<nsISVCParamEchConfig>; + nsISVCParamIPv6Hint: nsJSIID<nsISVCParamIPv6Hint>; + nsISVCParamODoHConfig: nsJSIID<nsISVCParamODoHConfig>; + nsISVCBRecord: nsJSIID<nsISVCBRecord>; + nsIDNSHTTPSSVCRecord: nsJSIID<nsIDNSHTTPSSVCRecord>; + nsIDNSListener: nsJSIID<nsIDNSListener>; + nsIDNSRecord: nsJSIID<nsIDNSRecord>; + nsIDNSAddrRecord: nsJSIID<nsIDNSAddrRecord>; + nsIDNSService: nsJSIID<nsIDNSService, typeof nsIDNSService.ResolveType & typeof nsIDNSService.ResolverMode & typeof nsIDNSService.DNSFlags & typeof nsIDNSService.ConfirmationState>; + nsIEffectiveTLDService: nsJSIID<nsIEffectiveTLDService>; + nsIIDNService: nsJSIID<nsIIDNService>; + nsINativeDNSResolverOverride: nsJSIID<nsINativeDNSResolverOverride>; + nsITRRSkipReason: nsJSIID<nsITRRSkipReason, typeof nsITRRSkipReason.value>; + nsPIDNSService: nsJSIID<nsPIDNSService>; + nsIFileChannel: nsJSIID<nsIFileChannel>; + nsIFileProtocolHandler: nsJSIID<nsIFileProtocolHandler>; + nsIBinaryHttpRequest: nsJSIID<nsIBinaryHttpRequest>; + nsIBinaryHttpResponse: nsJSIID<nsIBinaryHttpResponse>; + nsIBinaryHttp: nsJSIID<nsIBinaryHttp>; + nsIEarlyHintObserver: nsJSIID<nsIEarlyHintObserver>; + nsIHttpActivityObserver: nsJSIID<nsIHttpActivityObserver>; + nsIHttpActivityDistributor: nsJSIID<nsIHttpActivityDistributor>; + nsIHttpAuthManager: nsJSIID<nsIHttpAuthManager>; + nsIHttpChannel: nsJSIID<nsIHttpChannel>; + nsIHttpUpgradeListener: nsJSIID<nsIHttpUpgradeListener>; + nsIHttpChannelInternal: nsJSIID<nsIHttpChannelInternal>; + nsIHttpHeaderVisitor: nsJSIID<nsIHttpHeaderVisitor>; + nsIHttpProtocolHandler: nsJSIID<nsIHttpProtocolHandler>; + nsIObliviousHttpClientResponse: nsJSIID<nsIObliviousHttpClientResponse>; + nsIObliviousHttpClientRequest: nsJSIID<nsIObliviousHttpClientRequest>; + nsIObliviousHttpServerResponse: nsJSIID<nsIObliviousHttpServerResponse>; + nsIObliviousHttpServer: nsJSIID<nsIObliviousHttpServer>; + nsIObliviousHttp: nsJSIID<nsIObliviousHttp>; + nsIObliviousHttpService: nsJSIID<nsIObliviousHttpService>; + nsIObliviousHttpChannel: nsJSIID<nsIObliviousHttpChannel>; + nsIRaceCacheWithNetwork: nsJSIID<nsIRaceCacheWithNetwork>; + nsIWellKnownOpportunisticUtils: nsJSIID<nsIWellKnownOpportunisticUtils>; + nsICompressConvStats: nsJSIID<nsICompressConvStats>; + nsIResProtocolHandler: nsJSIID<nsIResProtocolHandler>; + nsISubstitutingProtocolHandler: nsJSIID<nsISubstitutingProtocolHandler>; + nsINamedPipeDataObserver: nsJSIID<nsINamedPipeDataObserver>; + nsINamedPipeService: nsJSIID<nsINamedPipeService>; + nsISocketProvider: nsJSIID<nsISocketProvider>; + nsISocketProviderService: nsJSIID<nsISocketProviderService>; + mozITXTToHTMLConv: nsJSIID<mozITXTToHTMLConv>; + nsIDirIndex: nsJSIID<nsIDirIndex>; + nsIDirIndexListener: nsJSIID<nsIDirIndexListener>; + nsIDirIndexParser: nsJSIID<nsIDirIndexParser>; + nsIStreamConverter: nsJSIID<nsIStreamConverter>; + nsIStreamConverterService: nsJSIID<nsIStreamConverterService>; + nsITXTToHTMLConv: nsJSIID<nsITXTToHTMLConv>; + nsITransportProvider: nsJSIID<nsITransportProvider>; + nsIWebSocketChannel: nsJSIID<nsIWebSocketChannel>; + nsIWebSocketFrame: nsJSIID<nsIWebSocketFrame>; + nsIWebSocketEventListener: nsJSIID<nsIWebSocketEventListener>; + nsIWebSocketEventService: nsJSIID<nsIWebSocketEventService>; + nsIWebSocketImpl: nsJSIID<nsIWebSocketImpl>; + nsIWebSocketListener: nsJSIID<nsIWebSocketListener>; + nsIWebTransport: nsJSIID<nsIWebTransport, typeof nsIWebTransport.WebTransportError>; + WebTransportSessionEventListener: nsJSIID<WebTransportSessionEventListener, typeof WebTransportSessionEventListener.DatagramOutcome>; + nsIWebTransportStreamCallback: nsJSIID<nsIWebTransportStreamCallback>; + nsIWebTransportHash: nsJSIID<nsIWebTransportHash>; + nsIWebTransportSendStreamStats: nsJSIID<nsIWebTransportSendStreamStats>; + nsIWebTransportReceiveStreamStats: nsJSIID<nsIWebTransportReceiveStreamStats>; + nsIWebTransportStreamStatsCallback: nsJSIID<nsIWebTransportStreamStatsCallback>; + nsIWebTransportReceiveStream: nsJSIID<nsIWebTransportReceiveStream>; + nsIWebTransportSendStream: nsJSIID<nsIWebTransportSendStream>; + nsIWebTransportBidirectionalStream: nsJSIID<nsIWebTransportBidirectionalStream>; + nsIWifiAccessPoint: nsJSIID<nsIWifiAccessPoint>; + nsIWifiListener: nsJSIID<nsIWifiListener>; + nsIWifiMonitor: nsJSIID<nsIWifiMonitor>; + nsIParentalControlsService: nsJSIID<nsIParentalControlsService>; + IPeerConnectionObserver: nsJSIID<IPeerConnectionObserver>; + IPeerConnection: nsJSIID<IPeerConnection>; + nsICertOverride: nsJSIID<nsICertOverride>; + nsICertOverrideService: nsJSIID<nsICertOverrideService>; + nsICertStorageCallback: nsJSIID<nsICertStorageCallback>; + nsIRevocationState: nsJSIID<nsIRevocationState>; + nsIIssuerAndSerialRevocationState: nsJSIID<nsIIssuerAndSerialRevocationState>; + nsISubjectAndPubKeyRevocationState: nsJSIID<nsISubjectAndPubKeyRevocationState>; + nsICRLiteCoverage: nsJSIID<nsICRLiteCoverage>; + nsICertInfo: nsJSIID<nsICertInfo>; + nsICertStorage: nsJSIID<nsICertStorage>; + nsICertTreeItem: nsJSIID<nsICertTreeItem>; + nsICertTree: nsJSIID<nsICertTree>; + nsICertificateDialogs: nsJSIID<nsICertificateDialogs>; + nsIClientAuthDialogCallback: nsJSIID<nsIClientAuthDialogCallback>; + nsIClientAuthDialogService: nsJSIID<nsIClientAuthDialogService>; + nsIClientAuthRememberRecord: nsJSIID<nsIClientAuthRememberRecord>; + nsIClientAuthRememberService: nsJSIID<nsIClientAuthRememberService>; + nsIContentSignatureVerifier: nsJSIID<nsIContentSignatureVerifier>; + nsICryptoHash: nsJSIID<nsICryptoHash>; + nsIDataStorageManager: nsJSIID<nsIDataStorageManager, typeof nsIDataStorageManager.DataStorage>; + nsIDataStorage: nsJSIID<nsIDataStorage, typeof nsIDataStorage.DataType>; + nsIDataStorageItem: nsJSIID<nsIDataStorageItem>; + nsINSSComponent: nsJSIID<nsINSSComponent>; + nsINSSErrorsService: nsJSIID<nsINSSErrorsService>; + nsINSSVersion: nsJSIID<nsINSSVersion>; + nsIOSKeyStore: nsJSIID<nsIOSKeyStore>; + nsIOSReauthenticator: nsJSIID<nsIOSReauthenticator>; + nsIPK11Token: nsJSIID<nsIPK11Token>; + nsIPK11TokenDB: nsJSIID<nsIPK11TokenDB>; + nsIPKCS11Module: nsJSIID<nsIPKCS11Module>; + nsIPKCS11ModuleDB: nsJSIID<nsIPKCS11ModuleDB>; + nsIPKCS11Slot: nsJSIID<nsIPKCS11Slot>; + nsIPublicKeyPinningService: nsJSIID<nsIPublicKeyPinningService>; + nsISecretDecoderRing: nsJSIID<nsISecretDecoderRing>; + nsISecurityUITelemetry: nsJSIID<nsISecurityUITelemetry>; + nsISiteSecurityService: nsJSIID<nsISiteSecurityService, typeof nsISiteSecurityService.ResetStateBy>; + nsITLSSocketControl: nsJSIID<nsITLSSocketControl>; + nsITokenPasswordDialogs: nsJSIID<nsITokenPasswordDialogs>; + nsITransportSecurityInfo: nsJSIID<nsITransportSecurityInfo, typeof nsITransportSecurityInfo.OverridableErrorCategory>; + nsIX509Cert: nsJSIID<nsIX509Cert>; + nsIAppSignatureInfo: nsJSIID<nsIAppSignatureInfo, typeof nsIAppSignatureInfo.SignatureAlgorithm>; + nsIOpenSignedAppFileCallback: nsJSIID<nsIOpenSignedAppFileCallback>; + nsIAsyncBoolCallback: nsJSIID<nsIAsyncBoolCallback>; + nsICertVerificationCallback: nsJSIID<nsICertVerificationCallback>; + nsIX509CertDB: nsJSIID<nsIX509CertDB>; + nsIX509CertValidity: nsJSIID<nsIX509CertValidity>; + mozIVisitInfo: nsJSIID<mozIVisitInfo>; + mozIPlaceInfo: nsJSIID<mozIPlaceInfo>; + mozIVisitInfoCallback: nsJSIID<mozIVisitInfoCallback>; + mozIVisitedStatusCallback: nsJSIID<mozIVisitedStatusCallback>; + mozIAsyncHistory: nsJSIID<mozIAsyncHistory>; + mozIPlacesAutoComplete: nsJSIID<mozIPlacesAutoComplete>; + mozIPlacesPendingOperation: nsJSIID<mozIPlacesPendingOperation>; + mozISyncedBookmarksMirrorProgressListener: nsJSIID<mozISyncedBookmarksMirrorProgressListener>; + mozISyncedBookmarksMirrorCallback: nsJSIID<mozISyncedBookmarksMirrorCallback>; + mozISyncedBookmarksMirrorLogger: nsJSIID<mozISyncedBookmarksMirrorLogger>; + mozISyncedBookmarksMerger: nsJSIID<mozISyncedBookmarksMerger>; + nsIFaviconService: nsJSIID<nsIFaviconService>; + nsIFaviconDataCallback: nsJSIID<nsIFaviconDataCallback>; + nsINavBookmarksService: nsJSIID<nsINavBookmarksService>; + nsINavHistoryResultNode: nsJSIID<nsINavHistoryResultNode>; + nsINavHistoryContainerResultNode: nsJSIID<nsINavHistoryContainerResultNode>; + nsINavHistoryQueryResultNode: nsJSIID<nsINavHistoryQueryResultNode>; + nsINavHistoryResultObserver: nsJSIID<nsINavHistoryResultObserver>; + nsINavHistoryResult: nsJSIID<nsINavHistoryResult>; + nsINavHistoryQuery: nsJSIID<nsINavHistoryQuery>; + nsINavHistoryQueryOptions: nsJSIID<nsINavHistoryQueryOptions>; + nsINavHistoryService: nsJSIID<nsINavHistoryService>; + nsIPlacesPreviewsHelperService: nsJSIID<nsIPlacesPreviewsHelperService>; + nsITaggingService: nsJSIID<nsITaggingService>; + nsIPrefBranch: nsJSIID<nsIPrefBranch>; + nsIPrefLocalizedString: nsJSIID<nsIPrefLocalizedString>; + nsIPrefStatsCallback: nsJSIID<nsIPrefStatsCallback>; + nsIPrefObserver: nsJSIID<nsIPrefObserver>; + nsIPrefService: nsJSIID<nsIPrefService>; + nsIRelativeFilePref: nsJSIID<nsIRelativeFilePref>; + nsIPrefetchService: nsJSIID<nsIPrefetchService>; + nsIProfilerStartParams: nsJSIID<nsIProfilerStartParams>; + nsIProfiler: nsJSIID<nsIProfiler>; + nsIRddProcessTest: nsJSIID<nsIRddProcessTest>; + nsIMarionette: nsJSIID<nsIMarionette>; + nsIRemoteAgent: nsJSIID<nsIRemoteAgent>; + nsIApplicationReputationService: nsJSIID<nsIApplicationReputationService>; + nsIApplicationReputationQuery: nsJSIID<nsIApplicationReputationQuery>; + nsIApplicationReputationCallback: nsJSIID<nsIApplicationReputationCallback>; + mozISandboxSettings: nsJSIID<mozISandboxSettings>; + nsIFormAutoComplete: nsJSIID<nsIFormAutoComplete>; + nsIFormAutoCompleteObserver: nsJSIID<nsIFormAutoCompleteObserver>; + nsIFormFillController: nsJSIID<nsIFormFillController>; + mozIAppServicesLogger: nsJSIID<mozIAppServicesLogger>; + mozIBridgedSyncEngineCallback: nsJSIID<mozIBridgedSyncEngineCallback>; + mozIBridgedSyncEngineApplyCallback: nsJSIID<mozIBridgedSyncEngineApplyCallback>; + mozIBridgedSyncEngine: nsJSIID<mozIBridgedSyncEngine>; + mozIInterruptible: nsJSIID<mozIInterruptible>; + mozIServicesLogSink: nsJSIID<mozIServicesLogSink>; + nsISessionStoreFunctions: nsJSIID<nsISessionStoreFunctions>; + nsISessionStoreRestoreData: nsJSIID<nsISessionStoreRestoreData>; + nsIShellService: nsJSIID<nsIShellService>; + nsIWindowsShellService: nsJSIID<nsIWindowsShellService>; + nsIBFCacheEntry: nsJSIID<nsIBFCacheEntry>; + nsISHEntry: nsJSIID<nsISHEntry>; + nsISHistory: nsJSIID<nsISHistory>; + nsISHistoryListener: nsJSIID<nsISHistoryListener>; + mozIPersonalDictionary: nsJSIID<mozIPersonalDictionary>; + mozISpellCheckingEngine: nsJSIID<mozISpellCheckingEngine>; + nsIStartupCacheInfo: nsJSIID<nsIStartupCacheInfo>; + mozIStorageAsyncConnection: nsJSIID<mozIStorageAsyncConnection>; + mozIStorageAsyncStatement: nsJSIID<mozIStorageAsyncStatement>; + mozIStorageBaseStatement: nsJSIID<mozIStorageBaseStatement>; + mozIStorageBindingParams: nsJSIID<mozIStorageBindingParams>; + mozIStorageBindingParamsArray: nsJSIID<mozIStorageBindingParamsArray>; + mozIStorageCompletionCallback: nsJSIID<mozIStorageCompletionCallback>; + mozIStorageConnection: nsJSIID<mozIStorageConnection>; + mozIStorageError: nsJSIID<mozIStorageError>; + mozIStorageFunction: nsJSIID<mozIStorageFunction>; + mozIStoragePendingStatement: nsJSIID<mozIStoragePendingStatement>; + mozIStorageProgressHandler: nsJSIID<mozIStorageProgressHandler>; + mozIStorageResultSet: nsJSIID<mozIStorageResultSet>; + mozIStorageRow: nsJSIID<mozIStorageRow>; + mozIStorageService: nsJSIID<mozIStorageService>; + mozIStorageStatement: nsJSIID<mozIStorageStatement>; + mozIStorageStatementCallback: nsJSIID<mozIStorageStatementCallback>; + mozIStorageVacuumParticipant: nsJSIID<mozIStorageVacuumParticipant>; + mozIStorageValueArray: nsJSIID<mozIStorageValueArray>; + nsIWinTaskSchedulerService: nsJSIID<nsIWinTaskSchedulerService>; + nsIFetchTelemetryDataCallback: nsJSIID<nsIFetchTelemetryDataCallback>; + nsITelemetry: nsJSIID<nsITelemetry>; + nsIDAPTelemetry: nsJSIID<nsIDAPTelemetry>; + nsIHttpServer: nsJSIID<nsIHttpServer>; + nsIHttpServerStoppedCallback: nsJSIID<nsIHttpServerStoppedCallback>; + nsIHttpServerIdentity: nsJSIID<nsIHttpServerIdentity>; + nsIHttpRequestHandler: nsJSIID<nsIHttpRequestHandler>; + nsIHttpRequest: nsJSIID<nsIHttpRequest>; + nsIHttpResponse: nsJSIID<nsIHttpResponse>; + nsIPageThumbsStorageService: nsJSIID<nsIPageThumbsStorageService>; + nsIProfileStartup: nsJSIID<nsIProfileStartup>; + nsIProfileMigrator: nsJSIID<nsIProfileMigrator>; + nsIProfileUnlocker: nsJSIID<nsIProfileUnlocker>; + nsIProfileLock: nsJSIID<nsIProfileLock>; + nsIToolkitProfile: nsJSIID<nsIToolkitProfile>; + nsIToolkitProfileService: nsJSIID<nsIToolkitProfileService, typeof nsIToolkitProfileService.downgradeUIFlags & typeof nsIToolkitProfileService.downgradeUIChoice & typeof nsIToolkitProfileService.profileManagerResult>; + nsIBounceTrackingProtection: nsJSIID<nsIBounceTrackingProtection>; + nsIContentBlockingAllowList: nsJSIID<nsIContentBlockingAllowList>; + nsIPartitioningExceptionListObserver: nsJSIID<nsIPartitioningExceptionListObserver>; + nsIPartitioningExceptionListService: nsJSIID<nsIPartitioningExceptionListService>; + nsIPurgeTrackerService: nsJSIID<nsIPurgeTrackerService>; + nsITrackingDBService: nsJSIID<nsITrackingDBService>; + nsIURLDecorationAnnotationsService: nsJSIID<nsIURLDecorationAnnotationsService>; + nsIURLQueryStringStripper: nsJSIID<nsIURLQueryStringStripper>; + nsIURLQueryStrippingListObserver: nsJSIID<nsIURLQueryStrippingListObserver>; + nsIURLQueryStrippingListService: nsJSIID<nsIURLQueryStrippingListService>; + nsIAsyncShutdownBlocker: nsJSIID<nsIAsyncShutdownBlocker>; + nsIAsyncShutdownClient: nsJSIID<nsIAsyncShutdownClient>; + nsIAsyncShutdownCompletionCallback: nsJSIID<nsIAsyncShutdownCompletionCallback>; + nsIAsyncShutdownBarrier: nsJSIID<nsIAsyncShutdownBarrier>; + nsIAsyncShutdownService: nsJSIID<nsIAsyncShutdownService>; + nsIBackgroundTasks: nsJSIID<nsIBackgroundTasks>; + nsIBackgroundTasksManager: nsJSIID<nsIBackgroundTasksManager>; + nsIBackgroundTasksRunner: nsJSIID<nsIBackgroundTasksRunner>; + nsIClearDataService: nsJSIID<nsIClearDataService>; + nsIClearDataCallback: nsJSIID<nsIClearDataCallback>; + nsIContentAnalysisAcknowledgement: nsJSIID<nsIContentAnalysisAcknowledgement, typeof nsIContentAnalysisAcknowledgement.Result & typeof nsIContentAnalysisAcknowledgement.FinalAction>; + nsIContentAnalysisResponse: nsJSIID<nsIContentAnalysisResponse, typeof nsIContentAnalysisResponse.Action>; + nsIClientDownloadResource: nsJSIID<nsIClientDownloadResource>; + nsIContentAnalysisRequest: nsJSIID<nsIContentAnalysisRequest, typeof nsIContentAnalysisRequest.AnalysisType & typeof nsIContentAnalysisRequest.OperationType>; + nsIContentAnalysisResult: nsJSIID<nsIContentAnalysisResult>; + nsIContentAnalysisCallback: nsJSIID<nsIContentAnalysisCallback>; + nsIContentAnalysis: nsJSIID<nsIContentAnalysis>; + nsIClickRule: nsJSIID<nsIClickRule, typeof nsIClickRule.RunContext>; + nsICookieBannerListService: nsJSIID<nsICookieBannerListService>; + nsICookieBannerRule: nsJSIID<nsICookieBannerRule>; + nsICookieBannerService: nsJSIID<nsICookieBannerService, typeof nsICookieBannerService.Modes>; + nsICookieRule: nsJSIID<nsICookieRule>; + nsICrashService: nsJSIID<nsICrashService>; + nsIFinalizationWitnessService: nsJSIID<nsIFinalizationWitnessService>; + nsIVisibleTab: nsJSIID<nsIVisibleTab>; + nsIBrowserWindowTracker: nsJSIID<nsIBrowserWindowTracker>; + nsIRegion: nsJSIID<nsIRegion>; + nsIProcessToolsService: nsJSIID<nsIProcessToolsService>; + nsIFingerprintingOverride: nsJSIID<nsIFingerprintingOverride>; + nsIFingerprintingWebCompatService: nsJSIID<nsIFingerprintingWebCompatService>; + nsIRFPService: nsJSIID<nsIRFPService>; + nsISearchSubmission: nsJSIID<nsISearchSubmission>; + nsISearchEngine: nsJSIID<nsISearchEngine>; + nsISearchParseSubmissionResult: nsJSIID<nsISearchParseSubmissionResult>; + nsISearchService: nsJSIID<nsISearchService>; + nsIToolkitShellService: nsJSIID<nsIToolkitShellService>; + nsIXULStore: nsJSIID<nsIXULStore>; + nsITransaction: nsJSIID<nsITransaction>; + nsITransactionManager: nsJSIID<nsITransactionManager>; + nsIInlineSpellChecker: nsJSIID<nsIInlineSpellChecker>; + nsIScriptableUnicodeConverter: nsJSIID<nsIScriptableUnicodeConverter>; + nsITextToSubURI: nsJSIID<nsITextToSubURI>; + nsIUpdateTimerManager: nsJSIID<nsIUpdateTimerManager>; + nsIUpdatePatch: nsJSIID<nsIUpdatePatch>; + nsIUpdate: nsJSIID<nsIUpdate>; + nsIUpdateCheckResult: nsJSIID<nsIUpdateCheckResult>; + nsIUpdateCheck: nsJSIID<nsIUpdateCheck>; + nsIUpdateChecker: nsJSIID<nsIUpdateChecker>; + nsIApplicationUpdateService: nsJSIID<nsIApplicationUpdateService>; + nsIUpdateProcessor: nsJSIID<nsIUpdateProcessor>; + nsIUpdateSyncManager: nsJSIID<nsIUpdateSyncManager>; + nsIUpdateManager: nsJSIID<nsIUpdateManager>; + nsIContentHandler: nsJSIID<nsIContentHandler>; + nsIDocumentLoader: nsJSIID<nsIDocumentLoader>; + nsITransfer: nsJSIID<nsITransfer>; + nsIURIContentListener: nsJSIID<nsIURIContentListener>; + nsIURILoader: nsJSIID<nsIURILoader>; + nsIWebProgress: nsJSIID<nsIWebProgress>; + nsIWebProgressListener: nsJSIID<nsIWebProgressListener>; + nsIWebProgressListener2: nsJSIID<nsIWebProgressListener2>; + nsIUrlClassifierBlockedChannel: nsJSIID<nsIUrlClassifierBlockedChannel>; + nsIChannelClassifierService: nsJSIID<nsIChannelClassifierService>; + nsIURIClassifierCallback: nsJSIID<nsIURIClassifierCallback>; + nsIURIClassifier: nsJSIID<nsIURIClassifier>; + nsIUrlClassifierExceptionListObserver: nsJSIID<nsIUrlClassifierExceptionListObserver>; + nsIUrlClassifierExceptionListService: nsJSIID<nsIUrlClassifierExceptionListService>; + nsIUrlClassifierFeature: nsJSIID<nsIUrlClassifierFeature, typeof nsIUrlClassifierFeature.listType & typeof nsIUrlClassifierFeature.URIType>; + nsIUrlClassifierFeatureResult: nsJSIID<nsIUrlClassifierFeatureResult>; + nsIUrlClassifierFeatureCallback: nsJSIID<nsIUrlClassifierFeatureCallback>; + IUrlClassifierUITelemetry: nsJSIID<IUrlClassifierUITelemetry>; + nsIUrlClassifierCallback: nsJSIID<nsIUrlClassifierCallback>; + nsIUrlClassifierUpdateObserver: nsJSIID<nsIUrlClassifierUpdateObserver>; + nsIUrlClassifierDBService: nsJSIID<nsIUrlClassifierDBService>; + nsIFullHashMatch: nsJSIID<nsIFullHashMatch>; + nsIUrlClassifierHashCompleterCallback: nsJSIID<nsIUrlClassifierHashCompleterCallback>; + nsIUrlClassifierHashCompleter: nsJSIID<nsIUrlClassifierHashCompleter>; + nsIUrlClassifierPositiveCacheEntry: nsJSIID<nsIUrlClassifierPositiveCacheEntry>; + nsIUrlClassifierCacheEntry: nsJSIID<nsIUrlClassifierCacheEntry>; + nsIUrlClassifierCacheInfo: nsJSIID<nsIUrlClassifierCacheInfo>; + nsIUrlClassifierGetCacheCallback: nsJSIID<nsIUrlClassifierGetCacheCallback>; + nsIUrlClassifierInfo: nsJSIID<nsIUrlClassifierInfo>; + nsIUrlClassifierPrefixSet: nsJSIID<nsIUrlClassifierPrefixSet>; + nsIUrlClassifierRemoteSettingsService: nsJSIID<nsIUrlClassifierRemoteSettingsService>; + nsIUrlClassifierStreamUpdater: nsJSIID<nsIUrlClassifierStreamUpdater>; + nsIUrlClassifierParseFindFullHashCallback: nsJSIID<nsIUrlClassifierParseFindFullHashCallback>; + nsIUrlClassifierUtils: nsJSIID<nsIUrlClassifierUtils>; + nsIUrlListManager: nsJSIID<nsIUrlListManager>; + nsIURLFormatter: nsJSIID<nsIURLFormatter>; + nsIUtilityProcessTest: nsJSIID<nsIUtilityProcessTest>; + nsIWebBrowserPersist: nsJSIID<nsIWebBrowserPersist>; + nsIWebBrowserPersistURIMap: nsJSIID<nsIWebBrowserPersistURIMap>; + nsIWebBrowserPersistDocument: nsJSIID<nsIWebBrowserPersistDocument>; + nsIWebBrowserPersistResourceVisitor: nsJSIID<nsIWebBrowserPersistResourceVisitor>; + nsIWebBrowserPersistWriteCompletion: nsJSIID<nsIWebBrowserPersistWriteCompletion>; + nsIWebBrowserPersistDocumentReceiver: nsJSIID<nsIWebBrowserPersistDocumentReceiver>; + nsIWebBrowser: nsJSIID<nsIWebBrowser>; + nsIWebBrowserChrome: nsJSIID<nsIWebBrowserChrome>; + nsIWebBrowserChromeFocus: nsJSIID<nsIWebBrowserChromeFocus>; + nsIWebBrowserPrint: nsJSIID<nsIWebBrowserPrint>; + mozIExtensionStorageArea: nsJSIID<mozIExtensionStorageArea>; + mozIConfigurableExtensionStorageArea: nsJSIID<mozIConfigurableExtensionStorageArea>; + mozISyncedExtensionStorageArea: nsJSIID<mozISyncedExtensionStorageArea>; + mozIExtensionStorageListener: nsJSIID<mozIExtensionStorageListener>; + mozIExtensionStorageCallback: nsJSIID<mozIExtensionStorageCallback>; + extIWebNavigation: nsJSIID<extIWebNavigation>; + mozIExtensionServiceWorkerInfo: nsJSIID<mozIExtensionServiceWorkerInfo>; + mozIExtensionListenerCallOptions: nsJSIID<mozIExtensionListenerCallOptions, typeof mozIExtensionListenerCallOptions.APIObjectType & typeof mozIExtensionListenerCallOptions.CallbackType>; + mozIExtensionEventListener: nsJSIID<mozIExtensionEventListener>; + mozIExtensionAPIRequest: nsJSIID<mozIExtensionAPIRequest, typeof mozIExtensionAPIRequest.RequestType>; + mozIExtensionAPIRequestResult: nsJSIID<mozIExtensionAPIRequestResult, typeof mozIExtensionAPIRequestResult.ResultType>; + mozIExtensionAPIRequestHandler: nsJSIID<mozIExtensionAPIRequestHandler>; + mozIExtensionProcessScript: nsJSIID<mozIExtensionProcessScript>; + nsIWebVTTListener: nsJSIID<nsIWebVTTListener>; + nsIWebVTTParserWrapper: nsJSIID<nsIWebVTTParserWrapper>; + nsIBaseWindow: nsJSIID<nsIBaseWindow>; + nsIBidiKeyboard: nsJSIID<nsIBidiKeyboard>; + nsIAsyncSetClipboardData: nsJSIID<nsIAsyncSetClipboardData>; + nsIAsyncClipboardRequestCallback: nsJSIID<nsIAsyncClipboardRequestCallback>; + nsIAsyncGetClipboardData: nsJSIID<nsIAsyncGetClipboardData>; + nsIAsyncClipboardGetCallback: nsJSIID<nsIAsyncClipboardGetCallback>; + nsIClipboard: nsJSIID<nsIClipboard>; + nsIClipboardHelper: nsJSIID<nsIClipboardHelper, typeof nsIClipboardHelper.SensitiveData>; + nsIClipboardOwner: nsJSIID<nsIClipboardOwner>; + nsIColorPickerShownCallback: nsJSIID<nsIColorPickerShownCallback>; + nsIColorPicker: nsJSIID<nsIColorPicker>; + nsIDisplayInfo: nsJSIID<nsIDisplayInfo>; + nsIDragService: nsJSIID<nsIDragService>; + nsIDragSession: nsJSIID<nsIDragSession>; + nsIFilePicker: nsJSIID<nsIFilePicker, typeof nsIFilePicker.Mode & typeof nsIFilePicker.ResultCode & typeof nsIFilePicker.CaptureTarget>; + nsIFilePickerShownCallback: nsJSIID<nsIFilePickerShownCallback>; + nsIFormatConverter: nsJSIID<nsIFormatConverter>; + nsIGfxInfo: nsJSIID<nsIGfxInfo, typeof nsIGfxInfo.FontVisibilityDeviceDetermination>; + nsIGfxInfoDebug: nsJSIID<nsIGfxInfoDebug>; + nsIJumpListBuilder: nsJSIID<nsIJumpListBuilder>; + nsILegacyJumpListCommittedCallback: nsJSIID<nsILegacyJumpListCommittedCallback>; + nsILegacyJumpListBuilder: nsJSIID<nsILegacyJumpListBuilder>; + nsILegacyJumpListItem: nsJSIID<nsILegacyJumpListItem>; + nsILegacyJumpListSeparator: nsJSIID<nsILegacyJumpListSeparator>; + nsILegacyJumpListLink: nsJSIID<nsILegacyJumpListLink>; + nsILegacyJumpListShortcut: nsJSIID<nsILegacyJumpListShortcut>; + nsIPaper: nsJSIID<nsIPaper>; + nsIPaperMargin: nsJSIID<nsIPaperMargin>; + nsIPrintDialogService: nsJSIID<nsIPrintDialogService>; + nsIPrintSettings: nsJSIID<nsIPrintSettings, typeof nsIPrintSettings.OutputDestinationType>; + nsIPrintSettingsService: nsJSIID<nsIPrintSettingsService>; + nsIPrinterInfo: nsJSIID<nsIPrinterInfo>; + nsIPrinter: nsJSIID<nsIPrinter>; + nsIPrinterList: nsJSIID<nsIPrinterList>; + nsIScreen: nsJSIID<nsIScreen>; + nsIScreenManager: nsJSIID<nsIScreenManager>; + nsISharePicker: nsJSIID<nsISharePicker>; + nsISound: nsJSIID<nsISound>; + nsISystemStatusBar: nsJSIID<nsISystemStatusBar>; + nsITaskbarOverlayIconController: nsJSIID<nsITaskbarOverlayIconController>; + nsITaskbarPreview: nsJSIID<nsITaskbarPreview>; + nsITaskbarPreviewButton: nsJSIID<nsITaskbarPreviewButton>; + nsITaskbarPreviewCallback: nsJSIID<nsITaskbarPreviewCallback>; + nsITaskbarPreviewController: nsJSIID<nsITaskbarPreviewController>; + nsITaskbarProgress: nsJSIID<nsITaskbarProgress>; + nsITaskbarTabPreview: nsJSIID<nsITaskbarTabPreview>; + nsITaskbarWindowPreview: nsJSIID<nsITaskbarWindowPreview>; + nsIFlavorDataProvider: nsJSIID<nsIFlavorDataProvider>; + nsITransferable: nsJSIID<nsITransferable>; + nsIUserIdleService: nsJSIID<nsIUserIdleService>; + nsIUserIdleServiceInternal: nsJSIID<nsIUserIdleServiceInternal>; + nsIWinTaskbar: nsJSIID<nsIWinTaskbar>; + nsIWindowsUIUtils: nsJSIID<nsIWindowsUIUtils>; + nsIWindowCreator: nsJSIID<nsIWindowCreator>; + nsIWindowProvider: nsJSIID<nsIWindowProvider>; + nsIWindowsPackageManager: nsJSIID<nsIWindowsPackageManager>; + nsIDialogParamBlock: nsJSIID<nsIDialogParamBlock>; + nsIOpenWindowInfo: nsJSIID<nsIOpenWindowInfo>; + nsIPromptCollection: nsJSIID<nsIPromptCollection>; + nsIPromptFactory: nsJSIID<nsIPromptFactory>; + nsIPromptService: nsJSIID<nsIPromptService>; + nsIWindowWatcher: nsJSIID<nsIWindowWatcher>; + nsIScriptableOK: nsJSIID<nsIScriptableOK>; + nsIScriptableWithNotXPCOM: nsJSIID<nsIScriptableWithNotXPCOM>; + nsITabUnloader: nsJSIID<nsITabUnloader>; + nsIAvailableMemoryWatcherBase: nsJSIID<nsIAvailableMemoryWatcherBase>; + nsIConsoleListener: nsJSIID<nsIConsoleListener>; + nsIConsoleMessage: nsJSIID<nsIConsoleMessage>; + nsIConsoleService: nsJSIID<nsIConsoleService, typeof nsIConsoleService.OutputMode>; + nsICycleCollectorHandler: nsJSIID<nsICycleCollectorHandler>; + nsICycleCollectorLogSink: nsJSIID<nsICycleCollectorLogSink>; + nsICycleCollectorListener: nsJSIID<nsICycleCollectorListener>; + nsIDebug2: nsJSIID<nsIDebug2>; + nsIStackFrame: nsJSIID<nsIStackFrame>; + nsIException: nsJSIID<nsIException>; + nsIInterfaceRequestor: nsJSIID<nsIInterfaceRequestor>; + nsIFinishDumpingCallback: nsJSIID<nsIFinishDumpingCallback>; + nsIDumpGCAndCCLogsCallback: nsJSIID<nsIDumpGCAndCCLogsCallback>; + nsIMemoryInfoDumper: nsJSIID<nsIMemoryInfoDumper>; + nsIHandleReportCallback: nsJSIID<nsIHandleReportCallback>; + nsIMemoryReporter: nsJSIID<nsIMemoryReporter>; + nsIFinishReportingCallback: nsJSIID<nsIFinishReportingCallback>; + nsIHeapAllocatedCallback: nsJSIID<nsIHeapAllocatedCallback>; + nsIMemoryReporterManager: nsJSIID<nsIMemoryReporterManager>; + nsISupports: nsJSIID<nsISupports>; + nsIUUIDGenerator: nsJSIID<nsIUUIDGenerator>; + nsIVersionComparator: nsJSIID<nsIVersionComparator>; + nsIWeakReference: nsJSIID<nsIWeakReference>; + nsISupportsWeakReference: nsJSIID<nsISupportsWeakReference>; + nsICategoryEntry: nsJSIID<nsICategoryEntry>; + nsICategoryManager: nsJSIID<nsICategoryManager>; + nsIClassInfo: nsJSIID<nsIClassInfo>; + nsIComponentManager: nsJSIID<nsIComponentManager>; + nsIComponentRegistrar: nsJSIID<nsIComponentRegistrar>; + nsIFactory: nsJSIID<nsIFactory>; + nsIServiceManager: nsJSIID<nsIServiceManager>; + nsIArray: nsJSIID<nsIArray>; + nsIArrayExtensions: nsJSIID<nsIArrayExtensions>; + nsIINIParser: nsJSIID<nsIINIParser>; + nsIINIParserWriter: nsJSIID<nsIINIParserWriter>; + nsIINIParserFactory: nsJSIID<nsIINIParserFactory>; + nsIMutableArray: nsJSIID<nsIMutableArray>; + nsIObserver: nsJSIID<nsIObserver>; + nsIObserverService: nsJSIID<nsIObserverService>; + nsIPropertyElement: nsJSIID<nsIPropertyElement>; + nsIPersistentProperties: nsJSIID<nsIPersistentProperties>; + nsIProperties: nsJSIID<nsIProperties>; + nsIProperty: nsJSIID<nsIProperty>; + nsIPropertyBag: nsJSIID<nsIPropertyBag>; + nsIPropertyBag2: nsJSIID<nsIPropertyBag2>; + nsISerializable: nsJSIID<nsISerializable>; + nsIJSEnumerator: nsJSIID<nsIJSEnumerator>; + nsISimpleEnumeratorBase: nsJSIID<nsISimpleEnumeratorBase>; + nsISimpleEnumerator: nsJSIID<nsISimpleEnumerator>; + nsIStringEnumeratorBase: nsJSIID<nsIStringEnumeratorBase>; + nsIStringEnumerator: nsJSIID<nsIStringEnumerator>; + nsIUTF8StringEnumerator: nsJSIID<nsIUTF8StringEnumerator>; + nsIOutputIterator: nsJSIID<nsIOutputIterator>; + nsIInputIterator: nsJSIID<nsIInputIterator>; + nsIForwardIterator: nsJSIID<nsIForwardIterator>; + nsIBidirectionalIterator: nsJSIID<nsIBidirectionalIterator>; + nsIRandomAccessIterator: nsJSIID<nsIRandomAccessIterator>; + nsISupportsPrimitive: nsJSIID<nsISupportsPrimitive>; + nsISupportsID: nsJSIID<nsISupportsID>; + nsISupportsCString: nsJSIID<nsISupportsCString>; + nsISupportsString: nsJSIID<nsISupportsString>; + nsISupportsPRBool: nsJSIID<nsISupportsPRBool>; + nsISupportsPRUint8: nsJSIID<nsISupportsPRUint8>; + nsISupportsPRUint16: nsJSIID<nsISupportsPRUint16>; + nsISupportsPRUint32: nsJSIID<nsISupportsPRUint32>; + nsISupportsPRUint64: nsJSIID<nsISupportsPRUint64>; + nsISupportsPRTime: nsJSIID<nsISupportsPRTime>; + nsISupportsChar: nsJSIID<nsISupportsChar>; + nsISupportsPRInt16: nsJSIID<nsISupportsPRInt16>; + nsISupportsPRInt32: nsJSIID<nsISupportsPRInt32>; + nsISupportsPRInt64: nsJSIID<nsISupportsPRInt64>; + nsISupportsFloat: nsJSIID<nsISupportsFloat>; + nsISupportsDouble: nsJSIID<nsISupportsDouble>; + nsISupportsInterfacePointer: nsJSIID<nsISupportsInterfacePointer>; + nsIVariant: nsJSIID<nsIVariant>; + nsIWritableVariant: nsJSIID<nsIWritableVariant>; + nsIWindowsRegKey: nsJSIID<nsIWindowsRegKey>; + nsIWritablePropertyBag: nsJSIID<nsIWritablePropertyBag>; + nsIWritablePropertyBag2: nsJSIID<nsIWritablePropertyBag2>; + nsIAsyncInputStream: nsJSIID<nsIAsyncInputStream>; + nsIInputStreamCallback: nsJSIID<nsIInputStreamCallback>; + nsIAsyncOutputStream: nsJSIID<nsIAsyncOutputStream>; + nsIOutputStreamCallback: nsJSIID<nsIOutputStreamCallback>; + nsIBinaryInputStream: nsJSIID<nsIBinaryInputStream>; + nsIBinaryOutputStream: nsJSIID<nsIBinaryOutputStream>; + nsICloneableInputStream: nsJSIID<nsICloneableInputStream>; + nsICloneableInputStreamWithRange: nsJSIID<nsICloneableInputStreamWithRange>; + nsIConverterInputStream: nsJSIID<nsIConverterInputStream>; + nsIConverterOutputStream: nsJSIID<nsIConverterOutputStream>; + nsIDirectoryEnumerator: nsJSIID<nsIDirectoryEnumerator>; + nsIDirectoryServiceProvider: nsJSIID<nsIDirectoryServiceProvider>; + nsIDirectoryServiceProvider2: nsJSIID<nsIDirectoryServiceProvider2>; + nsIDirectoryService: nsJSIID<nsIDirectoryService>; + nsIFile: nsJSIID<nsIFile>; + nsIIOUtil: nsJSIID<nsIIOUtil>; + nsIInputStream: nsJSIID<nsIInputStream>; + nsIInputStreamPriority: nsJSIID<nsIInputStreamPriority>; + nsIInputStreamTee: nsJSIID<nsIInputStreamTee>; + nsILineInputStream: nsJSIID<nsILineInputStream>; + nsILocalFileWin: nsJSIID<nsILocalFileWin>; + nsIMultiplexInputStream: nsJSIID<nsIMultiplexInputStream>; + nsIObjectInputStream: nsJSIID<nsIObjectInputStream>; + nsIObjectOutputStream: nsJSIID<nsIObjectOutputStream>; + nsIOutputStream: nsJSIID<nsIOutputStream>; + nsIPipe: nsJSIID<nsIPipe>; + nsISearchableInputStream: nsJSIID<nsISearchableInputStream>; + nsIRandomAccessStream: nsJSIID<nsIRandomAccessStream>; + nsISafeOutputStream: nsJSIID<nsISafeOutputStream>; + nsIScriptableBase64Encoder: nsJSIID<nsIScriptableBase64Encoder>; + nsIScriptableInputStream: nsJSIID<nsIScriptableInputStream>; + nsISeekableStream: nsJSIID<nsISeekableStream>; + nsIStorageStream: nsJSIID<nsIStorageStream>; + nsIStreamBufferAccess: nsJSIID<nsIStreamBufferAccess>; + nsIStringInputStream: nsJSIID<nsIStringInputStream>; + nsITellableStream: nsJSIID<nsITellableStream>; + nsIUnicharInputStream: nsJSIID<nsIUnicharInputStream>; + nsIUnicharLineInputStream: nsJSIID<nsIUnicharLineInputStream>; + nsIUnicharOutputStream: nsJSIID<nsIUnicharOutputStream>; + nsIBlocklistService: nsJSIID<nsIBlocklistService>; + nsICrashReporter: nsJSIID<nsICrashReporter>; + nsIDeviceSensorData: nsJSIID<nsIDeviceSensorData>; + nsIDeviceSensors: nsJSIID<nsIDeviceSensors>; + nsIGIOMimeApp: nsJSIID<nsIGIOMimeApp>; + nsIGIOService: nsJSIID<nsIGIOService>; + nsIGSettingsCollection: nsJSIID<nsIGSettingsCollection>; + nsIGSettingsService: nsJSIID<nsIGSettingsService>; + nsIGeolocationUpdate: nsJSIID<nsIGeolocationUpdate>; + nsIGeolocationProvider: nsJSIID<nsIGeolocationProvider>; + nsIHapticFeedback: nsJSIID<nsIHapticFeedback>; + nsIPlatformInfo: nsJSIID<nsIPlatformInfo>; + nsISystemInfo: nsJSIID<nsISystemInfo>; + nsIXULAppInfo: nsJSIID<nsIXULAppInfo>; + nsIXULRuntime: nsJSIID<nsIXULRuntime, typeof nsIXULRuntime.ExperimentStatus & typeof nsIXULRuntime.ContentWin32kLockdownState & typeof nsIXULRuntime.FissionDecisionStatus>; + nsIEnvironment: nsJSIID<nsIEnvironment>; + nsIEventTarget: nsJSIID<nsIEventTarget>; + nsINamed: nsJSIID<nsINamed>; + nsIProcess: nsJSIID<nsIProcess>; + nsIRunnable: nsJSIID<nsIRunnable>; + nsIRunnablePriority: nsJSIID<nsIRunnablePriority>; + nsISerialEventTarget: nsJSIID<nsISerialEventTarget>; + nsISupportsPriority: nsJSIID<nsISupportsPriority>; + nsIThread: nsJSIID<nsIThread, typeof nsIThread.QoSPriority>; + nsIThreadInternal: nsJSIID<nsIThreadInternal>; + nsINestedEventLoopCondition: nsJSIID<nsINestedEventLoopCondition>; + nsIThreadManager: nsJSIID<nsIThreadManager>; + nsIThreadShutdown: nsJSIID<nsIThreadShutdown>; + nsITimerCallback: nsJSIID<nsITimerCallback>; + nsITimer: nsJSIID<nsITimer>; + nsITimerManager: nsJSIID<nsITimerManager>; + mozIJSSubScriptLoader: nsJSIID<mozIJSSubScriptLoader>; + xpcIJSWeakReference: nsJSIID<xpcIJSWeakReference>; + nsIXPCComponents_Classes: nsJSIID<nsIXPCComponents_Classes>; + nsIXPCComponents_Results: nsJSIID<nsIXPCComponents_Results>; + nsIXPCComponents_ID: nsJSIID<nsIXPCComponents_ID>; + nsIXPCComponents_Exception: nsJSIID<nsIXPCComponents_Exception>; + nsIXPCComponents_Constructor: nsJSIID<nsIXPCComponents_Constructor>; + nsIXPCComponents_utils_Sandbox: nsJSIID<nsIXPCComponents_utils_Sandbox>; + nsIScheduledGCCallback: nsJSIID<nsIScheduledGCCallback>; + nsIXPCComponents_Utils: nsJSIID<nsIXPCComponents_Utils>; + nsIXPCComponents: nsJSIID<nsIXPCComponents>; + nsIXPCTestObjectReadOnly: nsJSIID<nsIXPCTestObjectReadOnly>; + nsIXPCTestObjectReadWrite: nsJSIID<nsIXPCTestObjectReadWrite>; + nsIXPCTestBug809674: nsJSIID<nsIXPCTestBug809674>; + nsIXPCTestCEnums: nsJSIID<nsIXPCTestCEnums, typeof nsIXPCTestCEnums.testFlagsExplicit & typeof nsIXPCTestCEnums.testFlagsImplicit>; + nsIXPCTestInterfaceA: nsJSIID<nsIXPCTestInterfaceA>; + nsIXPCTestInterfaceB: nsJSIID<nsIXPCTestInterfaceB>; + nsIXPCTestInterfaceC: nsJSIID<nsIXPCTestInterfaceC>; + nsIXPCTestParams: nsJSIID<nsIXPCTestParams>; + nsIXPCTestReturnCodeParent: nsJSIID<nsIXPCTestReturnCodeParent>; + nsIXPCTestReturnCodeChild: nsJSIID<nsIXPCTestReturnCodeChild>; + nsIXPCTestFunctionInterface: nsJSIID<nsIXPCTestFunctionInterface>; + nsIXPCTestUtils: nsJSIID<nsIXPCTestUtils>; + nsIBrowserController: nsJSIID<nsIBrowserController>; + nsIController: nsJSIID<nsIController>; + nsICommandController: nsJSIID<nsICommandController>; + nsIControllers: nsJSIID<nsIControllers>; + nsINativeAppSupport: nsJSIID<nsINativeAppSupport>; + nsIWinAppHelper: nsJSIID<nsIWinAppHelper>; + nsIXREDirProvider: nsJSIID<nsIXREDirProvider>; + nsIZipWriter: nsJSIID<nsIZipWriter>; +} + +} // global + +// Typedefs from xpidl. +type AccessibleTextBoundary = i32; +type AppTrustedRoot = u32; +type COSEAlgorithmIdentifier = i32; +type CSPDirective = nsIContentSecurityPolicy.CSPDirective; +type DOMHighResTimeStamp = double; +type DOMTimeStamp = u64; +type EpochTimeStamp = u64; +type PRTime = i64; +type PivotMoveReason = i16; +type PredictorLearnReason = u32; +type PredictorPredictReason = u32; +type char16_t = u16; +type nsBitsErrorAction = i32; +type nsBitsErrorStage = i32; +type nsBitsErrorType = i32; +type nsContentPolicyType = nsIContentPolicy.nsContentPolicyType; +type nsCookieAccess = i32; +type nsCookiePolicy = i32; +type nsCookieStatus = i32; +type nsHandlerInfoAction = i32; +type nsLoadFlags = u32; +type nsProxyUsage = i32; +type nsSecurityFlags = u32; +type nsServerSocketFlag = u32; +type nsSuspendedTypes = u32; +type nsTaskbarProgressState = i32; +type nsViewID = u64; +type nsresult = u32; + +/** + * Gecko XPCOM builtins and utility types. + */ + +/** + * Generic IDs are created by most code which passes a nsID to js. + * https://searchfox.org/mozilla-central/source/js/xpconnect/src/XPCJSID.cpp#24 + */ +interface nsID<uuid = string> { + readonly number: uuid; +} + +/** + * In addition to nsID, interface IIDs support instanceof type guards, + * and expose constants defined on the class, including variants from enums. + * https://searchfox.org/mozilla-central/source/js/xpconnect/src/XPCJSID.cpp#44 + */ +type nsJSIID<iface, enums = {}> = nsID & Constants<iface> & enums & { + new (_: never): void; + prototype: iface; +} + +/** A union of all known IIDs. */ +type nsIID = nsIXPCComponents_Interfaces[keyof nsIXPCComponents_Interfaces]; + +/** A generic to resolve QueryInterface return type from a nsID (or nsIID). */ +export type nsQIResult<iid> = iid extends { prototype: infer U } ? U : never; + +/** XPCOM inout param is passed in as a js object with a value property. */ +type InOutParam<T> = { value: T }; + +/** XPCOM out param is written to the passed in object's value property. */ +type OutParam<T> = { value?: T }; + +/** A named type for interfaces to inherit from enums. */ +type Enums<enums> = enums; + +/** Callable accepts either form of a [function] interface. */ +type Callable<iface> = iface | Extract<iface[keyof iface], Function> + +/** Picks only const number properties from T. */ +type Constants<T> = { [K in keyof T as IfConst<K, T[K]>]: T[K] }; + +/** Resolves only for keys K whose corresponding type T is a narrow number. */ +type IfConst<K, T> = T extends number ? (number extends T ? never : K) : never; + +declare global { + // Until we have [ChromeOnly] webidl. + interface BrowsingContext {} + interface ContentFrameMessageManager {} + interface DOMRequest {} + interface FrameLoader {} + interface JSProcessActorChild {} + interface JSProcessActorParent {} + interface TreeColumn {} + interface WebExtensionContentScript {} + interface WebExtensionPolicy {} + interface WindowGlobalParent {} + interface WindowContext {} + interface XULTreeElement {} +} + +// Non-scriptable interfaces referenced from scriptable ones. +interface nsIAsyncVerifyRedirectReadyCallback {} +interface nsICRLiteTimestamp {} +interface nsIInputAvailableCallback {} +interface nsIScriptElement {} +interface nsIThreadObserver {} +interface nsIUDPSocketSyncListener {} +interface nsIWebAuthnRegisterArgs {} +interface nsIWebAuthnRegisterPromise {} +interface nsIWebAuthnSignArgs {} +interface nsIWebAuthnSignPromise {} +interface nsIXPCScriptable {} + +// Typedefs useful as a quick reference in method signatures. +type double = number; +type float = number; +type i16 = number; +type i32 = number; +type i64 = number; +type u16 = number; +type u32 = number; +type u64 = number; +type u8 = number; |