From a09a51e53877301b5463ab101636539e66f78963 Mon Sep 17 00:00:00 2001 From: "ws29.jung" Date: Fri, 21 Aug 2020 12:38:38 +0900 Subject: [PATCH] [Addon] Fix various issues with addon There was few issues with running addon over Webapps. - Browser side addonapi.windows did not export properly - Missing null check with addonInstance.activate - Return addaonAvailable true even addon is not active Change-Id: Ibfc58c0213498ea4538eda31ab16725c5c529e2e Signed-off-by: ws29.jung --- wrt_app/addon/browser/modules/window.ts | 26 ++++++++++++-------------- wrt_app/src/addon_manager.ts | 8 +++++++- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/wrt_app/addon/browser/modules/window.ts b/wrt_app/addon/browser/modules/window.ts index 6cbd37c..e1da180 100644 --- a/wrt_app/addon/browser/modules/window.ts +++ b/wrt_app/addon/browser/modules/window.ts @@ -2,20 +2,18 @@ import { dialog, BrowserWindow } from 'electron'; -export default { - loadURL: function (winId: number, url: string) { - let window = BrowserWindow.fromId(winId); - window.loadURL(url); - }, +export const loadURL= function (winId: number, url: string) { + let window = BrowserWindow.fromId(winId); + window.loadURL(url); +}; - showMessageBox: function (winId: number, options: Electron.MessageBoxOptions) { - let window = BrowserWindow.fromId(winId); - let showMessageBox = (dialog.showMessageBoxSync || dialog.showMessageBox); - showMessageBox(window, options); - }, +export const showMessageBox = function (winId: number, options: Electron.MessageBoxOptions) { + let window = BrowserWindow.fromId(winId); + let showMessageBox = (dialog.showMessageBoxSync || dialog.showMessageBox); + showMessageBox(window, options); +}; - show: function (winId: number) { - let window = BrowserWindow.fromId(winId); - window.show(); - } +export const show = function (winId: number) { + let window = BrowserWindow.fromId(winId); + window.show(); }; diff --git a/wrt_app/src/addon_manager.ts b/wrt_app/src/addon_manager.ts index de7a845..4d25a33 100644 --- a/wrt_app/src/addon_manager.ts +++ b/wrt_app/src/addon_manager.ts @@ -185,6 +185,8 @@ class AddonManager { private activate(addon: AddonInfo) { console.log('activate: ' + addon.path + ' name:' + addon.name); + if (!addon.activate) + return; let addonInstance = this.getModule(addon); if (addonInstance && addonInstance.activate) addonInstance.activate(); @@ -236,7 +238,11 @@ class AddonManager { } isAddonAvailable() { - return this.addonList.length != 0; + for (let addon of this.addonList) { + if (addon.activate) + return true; + } + return false; } emit(eventName: string, ...args: any[]) { -- 2.7.4