Merge "Using native window open" into tizen
[platform/framework/web/wrtjs.git] / wrt_app / src / web_application.ts
old mode 100755 (executable)
new mode 100644 (file)
index fbaff44..a48dfa2
@@ -27,6 +27,7 @@ export class WebApplication {
   backgroundExecution: boolean;
   defaultBackgroundColor: string;
   defaultTransparent: boolean;
+  isAlwaysReload: boolean;
   mainWindow: Electron.BrowserWindow;
   multitaskingSupport: boolean;
   notificationPermissionMap?: Map<Electron.WebContents, boolean>;
@@ -36,6 +37,7 @@ export class WebApplication {
   backgroundSupport = wrt.getBackgroundSupport();
   debugPort = 0;
   firstRendered = false;
+  contentSrc = '';
   inspectorSrc = '';
   loadFinished = false;
   pendingCallbacks: Map<number, any> = new Map();
@@ -59,6 +61,7 @@ export class WebApplication {
       this.backgroundExecution = false;
     }
     this.accessiblePath = wrt.tv?.getAccessiblePath();
+    this.isAlwaysReload = (wrt.tv ? wrt.tv.isAlwaysReload() : false);
     this.multitaskingSupport = (wrt.tv ? wrt.tv.getMultitaskingSupport() : true);
     this.defaultBackgroundColor = (wrt.tv ? '#0000' :
         ((wrt.getPlatformType() === "product_wearable") ? '#000' : '#FFF'));
@@ -372,9 +375,27 @@ Then you can get profile log from the initial loading.`;
       this.sendAppControlEvent();
   }
 
-  loadUrl(src: string) {
-    this.mainWindow.loadURL(src);
-    this.prelaunch(src);
+  private launchInspectorIfNeeded(appControl: NativeWRTjs.AppControl) {
+    console.log('launchInspectorIfNeeded');
+    let inspectorEnabledByVconf = wrt.tv ? wrt.tv.needUseInspector() : false;
+    if (inspectorEnabledByVconf && !this.backgroundExecution) {
+      this.inspectorSrc = this.contentSrc;
+      this.contentSrc = 'about:blank';
+    }
+    let hasAulDebug = (appControl.getData('__AUL_DEBUG__') === '1');
+    if (hasAulDebug || inspectorEnabledByVconf) {
+      let debugPort = wrt.startInspectorServer();
+      let data = { "port": [debugPort.toString()] };
+      this.debugPort = debugPort;
+      appControl.reply(data);
+    }
+  }
+
+  loadUrl(appControl: NativeWRTjs.AppControl) {
+    this.contentSrc = appControl.getLoadInfo().getSrc();
+    this.launchInspectorIfNeeded(appControl);
+    this.mainWindow.loadURL(this.contentSrc);
+    this.prelaunch(this.contentSrc);
     if (wrt.da) {
       this.mainWindow.emit('ready-to-show');
     }
@@ -440,8 +461,7 @@ Then you can get profile log from the initial loading.`;
   }
 
   private needReload(src: string) {
-    let isAlwaysReload = (wrt.tv ? wrt.tv.isAlwaysReload() : false);
-    if (isAlwaysReload) {
+    if (this.isAlwaysReload) {
       return true;
     }
     let reload = false;