Skip to content

Commit d83fd62

Browse files
committed
fix: allow using BaseWindow
1 parent 4c118f1 commit d83fd62

File tree

4 files changed

+18
-19
lines changed

4 files changed

+18
-19
lines changed

packages/electron-chrome-extensions/src/browser/api/windows.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import { BrowserWindow } from 'electron'
21
import { ExtensionContext } from '../context'
32
import { ExtensionEvent } from '../router'
43

54
const debug = require('debug')('electron-chrome-extensions:windows')
65

7-
const getWindowState = (win: BrowserWindow): chrome.windows.Window['state'] => {
6+
const getWindowState = (win: Electron.BaseWindow): chrome.windows.Window['state'] => {
87
if (win.isMaximized()) return 'maximized'
98
if (win.isMinimized()) return 'minimized'
109
if (win.isFullScreen()) return 'fullscreen'
@@ -47,7 +46,7 @@ export class WindowsAPI {
4746
debug(`Observing window[${windowId}]`)
4847
}
4948

50-
private createWindowDetails(win: BrowserWindow) {
49+
private createWindowDetails(win: Electron.BaseWindow) {
5150
const details: Partial<chrome.windows.Window> = {
5251
id: win.id,
5352
focused: win.isFocused(),
@@ -62,7 +61,7 @@ export class WindowsAPI {
6261
})
6362
.map((tab) => this.ctx.store.tabDetailsCache.get(tab.id) as chrome.tabs.Tab)
6463
.filter(Boolean),
65-
incognito: !win.webContents.session.isPersistent(),
64+
incognito: this.ctx.session.isPersistent(),
6665
type: 'normal', // TODO
6766
state: getWindowState(win),
6867
alwaysOnTop: win.isAlwaysOnTop(),
@@ -73,7 +72,7 @@ export class WindowsAPI {
7372
return details
7473
}
7574

76-
private getWindowDetails(win: BrowserWindow) {
75+
private getWindowDetails(win: Electron.BaseWindow) {
7776
if (this.ctx.store.windowDetailsCache.has(win.id)) {
7877
return this.ctx.store.windowDetailsCache.get(win.id)
7978
}

packages/electron-chrome-extensions/src/browser/impl.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
export interface ChromeExtensionImpl {
33
createTab?(
44
details: chrome.tabs.CreateProperties,
5-
): Promise<[Electron.WebContents, Electron.BrowserWindow]>
6-
selectTab?(tab: Electron.WebContents, window: Electron.BrowserWindow): void
7-
removeTab?(tab: Electron.WebContents, window: Electron.BrowserWindow): void
5+
): Promise<[Electron.WebContents, Electron.BaseWindow]>
6+
selectTab?(tab: Electron.WebContents, window: Electron.BaseWindow): void
7+
removeTab?(tab: Electron.WebContents, window: Electron.BaseWindow): void
88

99
/**
1010
* Populate additional details to a tab descriptor which gets passed back to
1111
* background pages and content scripts.
1212
*/
1313
assignTabDetails?(details: chrome.tabs.Tab, tab: Electron.WebContents): void
1414

15-
createWindow?(details: chrome.windows.CreateData): Promise<Electron.BrowserWindow>
16-
removeWindow?(window: Electron.BrowserWindow): void
15+
createWindow?(details: chrome.windows.CreateData): Promise<Electron.BaseWindow>
16+
removeWindow?(window: Electron.BaseWindow): void
1717
}

packages/electron-chrome-extensions/src/browser/popup.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export interface PopupAnchorRect {
1212
interface PopupViewOptions {
1313
extensionId: string
1414
session: Session
15-
parent: BrowserWindow
15+
parent: Electron.BaseWindow
1616
url: string
1717
anchorRect: PopupAnchorRect
1818
}
@@ -33,7 +33,7 @@ export class PopupView {
3333
}
3434

3535
browserWindow?: BrowserWindow
36-
parent?: BrowserWindow
36+
parent?: Electron.BaseWindow
3737
extensionId: string
3838

3939
private anchorRect: PopupAnchorRect

packages/electron-chrome-extensions/src/browser/store.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export class ExtensionStore extends EventEmitter {
1111
tabs = new Set<Electron.WebContents>()
1212

1313
/** Windows observed by the extensions system. */
14-
windows = new Set<Electron.BrowserWindow>()
14+
windows = new Set<Electron.BaseWindow>()
1515

1616
lastFocusedWindowId?: number
1717

@@ -21,10 +21,10 @@ export class ExtensionStore extends EventEmitter {
2121
* It's not possible to access the parent of a BrowserView so we must manage
2222
* this ourselves.
2323
*/
24-
tabToWindow = new WeakMap<Electron.WebContents, Electron.BrowserWindow>()
24+
tabToWindow = new WeakMap<Electron.WebContents, Electron.BaseWindow>()
2525

2626
/** Map of windows to their active tab. */
27-
private windowToActiveTab = new WeakMap<Electron.BrowserWindow, Electron.WebContents>()
27+
private windowToActiveTab = new WeakMap<Electron.BaseWindow, Electron.WebContents>()
2828

2929
tabDetailsCache = new Map<number, Partial<chrome.tabs.Tab>>()
3030
windowDetailsCache = new Map<number, Partial<chrome.windows.Window>>()
@@ -49,7 +49,7 @@ export class ExtensionStore extends EventEmitter {
4949
return this.getLastFocusedWindow()
5050
}
5151

52-
addWindow(window: Electron.BrowserWindow) {
52+
addWindow(window: Electron.BaseWindow) {
5353
if (this.windows.has(window)) return
5454

5555
this.windows.add(window)
@@ -73,7 +73,7 @@ export class ExtensionStore extends EventEmitter {
7373
return win
7474
}
7575

76-
async removeWindow(window: Electron.BrowserWindow) {
76+
async removeWindow(window: Electron.BaseWindow) {
7777
if (!this.windows.has(window)) return
7878

7979
this.windows.delete(window)
@@ -89,7 +89,7 @@ export class ExtensionStore extends EventEmitter {
8989
return Array.from(this.tabs).find((tab) => !tab.isDestroyed() && tab.id === tabId)
9090
}
9191

92-
addTab(tab: Electron.WebContents, window: Electron.BrowserWindow) {
92+
addTab(tab: Electron.WebContents, window: Electron.BaseWindow) {
9393
if (this.tabs.has(tab)) return
9494

9595
this.tabs.add(tab)
@@ -157,7 +157,7 @@ export class ExtensionStore extends EventEmitter {
157157
return tab
158158
}
159159

160-
getActiveTabFromWindow(win: Electron.BrowserWindow) {
160+
getActiveTabFromWindow(win: Electron.BaseWindow) {
161161
const activeTab = win && !win.isDestroyed() && this.windowToActiveTab.get(win)
162162
return (activeTab && !activeTab.isDestroyed() && activeTab) || undefined
163163
}

0 commit comments

Comments
 (0)