[VD] Fix issue for app deeplink that page is not reload 35/219535/2 accepted/tizen/5.5/unified/20191213.064206 submit/tizen_5.5/20191212.093338
authorliwei <wei90727.li@samsung.com>
Thu, 5 Dec 2019 13:56:24 +0000 (21:56 +0800)
committerliwei <wei90727.li@samsung.com>
Fri, 6 Dec 2019 02:50:11 +0000 (10:50 +0800)
When amazon music app(3201710014874) is shown in FG, and press
preview in amazon music, page is not reload, bcz WRT think request
src is the same with original url.
request src is "file:///index.html#!/deepLink",
original url is "file:///index.html#!/main/home".
Actually they are different, WRT should reload it.

Change-Id: I7f7b5767c1a34b017f80d6babe8e58f760f967a1
Signed-off-by: liwei <wei90727.li@samsung.com>
wrt_app/src/runtime.js [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index 14c51c5..c0a59ce
@@ -157,20 +157,25 @@ class Runtime {
 
                     let reload = loadInfo.getReload() || _this.webApplication.isAlwaysReload;
                     if (!reload) {
+                        let originalUrl = _this.webApplication.mainWindow.getURL();
                         if (wrt.tv) {
-                            console.log(`src = ${src}, app-control uri = ${_this.webApplication.mainWindow.getURL()}`);
-                            const url = require('url');
-                            let appcontrolUrl = url.parse(src);
-                            let originUrl = url.parse(_this.webApplication.mainWindow.getURL());
-                            if (appcontrolUrl.protocol !== originUrl.protocol ||
-                                appcontrolUrl.host !== originUrl.host ||
-                                appcontrolUrl.pathname !== originUrl.pathname) {
-                                reload = true;
-                            }
-                        } else {
-                            if (src != _this.webApplication.mainWindow.getURL()) {
+                            console.log(`appcontrol src = ${src}, original url = ${originalUrl}`);
+                            if (src && originalUrl) {
+                                let appcontrolUrl = new URL(src);
+                                let oldUrl = new URL(originalUrl);
+                                if ('file:' !== appcontrolUrl.protocol &&
+                                    (appcontrolUrl.protocol !== oldUrl.protocol ||
+                                     appcontrolUrl.host !== oldUrl.host ||
+                                     appcontrolUrl.pathname !== oldUrl.pathname)) {
+                                     reload = true;
+                                } else if ('file:' === appcontrolUrl.protocol && (src !== originalUrl)) {
+                                     reload = true;
+                                }
+                            } else if (src !== originalUrl) {
                                 reload = true;
                             }
+                        } else if (src !== originalUrl) {
+                            reload = true;
                         }
                     }
                     // handle http://tizen.org/appcontrol/operation/main operation specially.