From dd4ad6d72b820d4c8de12542a2f7295a320c80a5 Mon Sep 17 00:00:00 2001 From: antelle Date: Wed, 21 Apr 2021 20:27:55 +0200 Subject: [PATCH] starting the extension host based on settings --- .../extension/browser-extension-connector.js | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/app/scripts/comp/extension/browser-extension-connector.js b/app/scripts/comp/extension/browser-extension-connector.js index 8959c21f..a29569d9 100644 --- a/app/scripts/comp/extension/browser-extension-connector.js +++ b/app/scripts/comp/extension/browser-extension-connector.js @@ -30,7 +30,7 @@ const pendingBrowserMessages = []; let processingBrowserMessage = false; const BrowserExtensionConnector = { - enabled: true, + started: false, logger, init(appModel) { @@ -41,6 +41,7 @@ const BrowserExtensionConnector = { if (Launcher) { const { ipcRenderer } = Launcher.electron(); + ipcRenderer.on('browserExtensionSocketConnected', (e, socketId, connectionInfo) => this.socketConnected(socketId, connectionInfo) ); @@ -50,9 +51,13 @@ const BrowserExtensionConnector = { ipcRenderer.on('browserExtensionSocketRequest', (e, socketId, request) => this.socketRequest(socketId, request) ); + + AppSettingsModel.on('change', () => this.appSettingsChanged()); } - this.start(); + if (this.isEnabled()) { + this.start(); + } }, start() { @@ -61,6 +66,8 @@ const BrowserExtensionConnector = { } else { this.startWebMessageListener(); } + + this.started = true; }, stop() { @@ -73,7 +80,31 @@ const BrowserExtensionConnector = { ProtocolImpl.cleanup(); connections.clear(); - logger.info('Stopped'); + this.started = false; + }, + + appSettingsChanged() { + if (this.isEnabled()) { + if (!this.started) { + this.start(); + } + } else if (this.started) { + this.stop(); + } + }, + + isEnabled() { + if (!Launcher) { + return true; + } + for (const ext of SupportedExtensions) { + for (const browser of SupportedBrowsers) { + if (AppSettingsModel[`extensionEnabled${ext.alias}${browser}`]) { + return true; + } + } + } + return false; }, startWebMessageListener() {