[Addon] Fix various issues with addon 51/241951/3
authorws29.jung <ws29.jung@samsung.com>
Fri, 21 Aug 2020 03:38:38 +0000 (12:38 +0900)
committerws29.jung <ws29.jung@samsung.com>
Fri, 28 Aug 2020 01:36:30 +0000 (10:36 +0900)
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 <ws29.jung@samsung.com>
wrt_app/addon/browser/modules/window.ts
wrt_app/src/addon_manager.ts

index 6cbd37c..e1da180 100644 (file)
@@ -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();
 };
index de7a845..4d25a33 100644 (file)
@@ -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[]) {