feat(nbstore): share worker between workspaces (#9947)

This commit is contained in:
EYHN
2025-02-05 07:57:03 +00:00
parent 972d76d685
commit ee0cfe4dc7
30 changed files with 430 additions and 434 deletions

View File

@@ -269,12 +269,6 @@ export async function openUrlInHiddenWindow(urlObj: URL) {
win.webContents.openDevTools();
}
win.on('close', e => {
e.preventDefault();
if (win && !win.isDestroyed()) {
win.destroy();
}
});
logger.info('loading page at', url);
win.loadURL(url).catch(e => {
logger.error('failed to load url', e);

View File

@@ -395,7 +395,9 @@ export class WebContentViewsManager {
if (this.mainWindow && view) {
this.mainWindow.contentView.removeChildView(view);
view?.webContents.close();
view?.webContents.close({
waitForBeforeUnload: true,
});
}
}, 500); // delay a bit to get rid of the flicker
};

View File

@@ -43,13 +43,9 @@ export class WorkerManager {
show: false,
});
let disconnectHelperProcess: (() => void) | null = null;
worker.on('close', e => {
e.preventDefault();
if (worker && !worker.isDestroyed()) {
worker.destroy();
this.workers.delete(key);
disconnectHelperProcess?.();
}
worker.on('closed', () => {
this.workers.delete(key);
disconnectHelperProcess?.();
});
worker.loadURL(backgroundWorkerViewUrl).catch(e => {
logger.error('failed to load url', e);
@@ -74,6 +70,7 @@ export class WorkerManager {
this.disconnectWorker(key, portId);
});
const worker = await this.getOrCreateWorker(key);
worker.ports.add(portId);
const { port1: portForWorker, port2: portForRenderer } =
new MessageChannelMain();