Skip to content

Commit 3ebb26a

Browse files
committed
chore(internal/types): replace any with actual type for BrowserTab
1 parent 9a0bd3b commit 3ebb26a

1 file changed

Lines changed: 143 additions & 2 deletions

File tree

@types/gecko.d.mts

Lines changed: 143 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,149 @@ interface nsIWindowMediator {
251251

252252
declare var MozElements: MozElements;
253253

254-
// TODO(glide-types)
255-
declare type BrowserTab = any;
254+
interface BrowserTab extends MozTabbrowserTab {
255+
_glide_commandline: GlideCommandLine | null;
256+
}
257+
// Source browser/components/tabbrowser/content/tab.js
258+
interface MozTabbrowserTab extends XULElement {
259+
// Source toolkit/content/customElements.js
260+
disabled: boolean;
261+
tabIndex: number;
262+
// Source toolkit/content/customElements.js
263+
label: string;
264+
image: string;
265+
command: string;
266+
accessKey: string;
267+
// Source toolkit/content/widgets/tabbox.js
268+
value: string;
269+
container: MozTabbrowserTabs;
270+
control: MozTabbrowserTabs;
271+
selected: boolean;
272+
visible: boolean;
273+
linkedPanel: string;
274+
// Source browser/components/tabbrowser/content/tab.js
275+
closing: boolean;
276+
pinned: boolean;
277+
isOpen: boolean;
278+
readonly hidden: boolean;
279+
muted: boolean;
280+
multiselected: boolean;
281+
userContextId: number;
282+
soundPlaying: boolean;
283+
pictureinpicture: boolean;
284+
activeMediaBlocked: boolean;
285+
undiscardable: boolean;
286+
animationsEnabled: boolean;
287+
isEmpty: boolean;
288+
lastAccessed: number;
289+
lastSeenActive: number;
290+
attention: boolean;
291+
owner: MozTabbrowserTab | null;
292+
elementIndex: number;
293+
group: MozTabbrowserTabGroup | null;
294+
splitview: GlobalBrowser.MozTabSplitViewWrapper | null;
295+
hasTabNote: boolean;
296+
muteReason: string | undefined | null;
297+
298+
readonly overlayIcon: Element | null;
299+
readonly audioButton: Element | null;
300+
readonly throbber: Element | null;
301+
readonly iconImage: Element | null;
302+
readonly sharingIcon: Element | null;
303+
readonly textLabel: Element | null;
304+
readonly closeButton: Element | null;
305+
readonly noteIcon: Element | null;
306+
readonly noteIconOverlay: Element | null;
307+
308+
initialize(): void;
309+
updateLastAccessed(date?: number): void;
310+
updateLastSeenActive(): void;
311+
updateLastUnloadedByTabUnloader(): void;
312+
recordTimeFromUnloadToReload(): void;
313+
toggleMuteAudio(muteReason?: string | null): void;
314+
resumeDelayedMedia(): void;
315+
setUserContextId(userContextId: number): void;
316+
updateA11yDescription(): void;
317+
updateSplitViewAriaLabel(index: number): void;
318+
// Dynamically set by tabbrowser.js
319+
linkedBrowser: GlobalBrowser.GlobalBrowser | null;
320+
permanentKey: object | undefined;
321+
description: string | undefined;
322+
successor: MozTabbrowserTab | null;
323+
predecessors: Set<MozTabbrowserTab>;
324+
initializingTab: boolean | undefined;
325+
openerTab: MozTabbrowserTab | undefined;
326+
addedByAdoption: boolean | undefined;
327+
removedByAdoption: boolean | undefined;
328+
collapsed: boolean;
329+
}
330+
331+
// Source browser/components/tabbrowser/content/tabgroup.js
332+
interface MozTabbrowserTabGroup extends XULElement {
333+
overflowContainer: XULElement;
334+
saveOnWindowClose: boolean;
335+
336+
color: string;
337+
defaultGroupName: string;
338+
id: string;
339+
hasActiveTab: boolean;
340+
label: string;
341+
name: string;
342+
collapsed: boolean;
343+
lastSeenActive: number;
344+
tabs: MozTabbrowserTab[];
345+
tabsAndSplitViews: (MozTabbrowserTab | GlobalBrowser.MozTabSplitViewWrapper)[];
346+
labelElement: Element;
347+
labelContainerElement: XULElement;
348+
overflowCountLabel: Element;
349+
wasCreatedByAdoption: boolean;
350+
isBeingDragged: boolean;
351+
hoverPreviewPanelActive: boolean;
352+
353+
addTabs(
354+
tabsOrSplitViews: (MozTabbrowserTab | GlobalBrowser.MozTabSplitViewWrapper)[],
355+
metricsContext?: object,
356+
): void;
357+
ungroupTabs(metricsContext?: object): void;
358+
save(options?: object): void;
359+
saveAndClose(options?: object): void;
360+
select(): void;
361+
isTabVisibleInGroup(tab: MozTabbrowserTab): boolean;
362+
}
363+
364+
// Source browser/components/tabbrowser/content/tabs.js
365+
interface MozTabbrowserTabs extends XULElement {
366+
startupTime: number;
367+
arrowScrollbox: Element;
368+
pinnedTabsContainer: Element;
369+
previewPanel: object | null;
370+
tooltip: string;
371+
tabDragAndDrop: object;
372+
emptyTabTitle: string;
373+
tabbox: XULElement;
374+
newTabButton: Element;
375+
verticalMode: boolean;
376+
expandOnHover: boolean;
377+
overflowing: boolean;
378+
allTabs: MozTabbrowserTab[];
379+
allGroups: MozTabbrowserTabGroup[];
380+
allSplitViews: MozTabSplitViewWrapper[];
381+
openTabs: MozTabbrowserTab[];
382+
nonHiddenTabs: MozTabbrowserTab[];
383+
visibleTabs: MozTabbrowserTab[];
384+
tablistHasFocus: boolean;
385+
ariaFocusableItems: Element[];
386+
dragAndDropElements: Element[];
387+
init(): void;
388+
destroy(): void;
389+
advanceSelectedItem(direction: number, wrap: boolean): void;
390+
ensureTabPreviewPanelLoaded(): Promise<void>;
391+
updateTabSoundLabel(tab: MozTabbrowserTab): void;
392+
getRelatedElement(tab: MozTabbrowserTab): Element;
393+
isContainerVerticalPinnedGrid(tab: MozTabbrowserTab): boolean;
394+
cancelTabGroupPreview(): void;
395+
showTabGroupPreview(group: MozTabbrowserTabGroup): void;
396+
}
256397

257398
declare var GlideBrowser: typeof import("../src/glide/browser/base/content/browser.mts").GlideBrowser;
258399

0 commit comments

Comments
 (0)