From 9c35489bfb52fa68288286bae1357ce81d7c44b7 Mon Sep 17 00:00:00 2001 From: SangYong Park Date: Thu, 7 Mar 2019 18:55:04 +0900 Subject: [PATCH 01/16] Implement app control handler Change-Id: Ieeba1a9a77fcdaaa2da168b5f04f495859aa5e64 Signed-off-by: SangYong Park --- wrt_app/src/runtime.js | 27 +++++++++++++++++++++------ wrt_app/src/web_application.js | 18 +++++++++++------- 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index 109341e..2f58fd0 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -76,17 +76,32 @@ class Runtime { _this.extensionManager.build(); } }); - wrt.on('app-control', function() { + wrt.on('app-control', function(event, appControl) { console.log('app-control'); + let loadInfo = appControl.getLoadInfo(); + let src = loadInfo.getSrc(); if (_this.webApplication) { - // TODO: Reset application or emit appcontrol event - console.log("application is already created"); - return; + let reload = loadInfo.getReload(); + if (!reload) { + if (src != _this.webApplication.mainWindow.getURL()) + reload = true; + } + // handle http://tizen.org/appcontrol/operation/main operation specially. + // only menu-screen app can send launch request with main operation. + // in this case, web app should have to resume web app not reset. + if (reload && appControl.getOperation() == 'http://tizen.org/appcontrol/operation/main') + reload = false; + if (reload) { + _this.webApplication.mainWindow.destroy(); + _this.webApplication = nullptr; + } else { + _this.webApplication.sendAppControlEvent(); + } } if (wrt.isElectronApp()) { console.log("Electron App launch"); - let filePath = wrt.getPath(); + let filePath = src; let pkgJson = require(filePath.substr(7, filePath.length - 12)); let mainJsPath = filePath.substr(7, filePath.length - 19) + (pkgJson.main || 'index.js'); @@ -96,7 +111,7 @@ class Runtime { app.emit('ready'); } else { _this.webApplication = new WebApplication(options); - _this.webApplication.loadURL(); + _this.webApplication.mainWindow.loadURL(src); if (wrt.appID !== 'NVPDzvckj9.RuntimeAddonSetting') { _this.extensionManager.activateAll(app); } diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index e3cf6da..70a8afc 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -35,9 +35,6 @@ class WebApplication { this.firstRendered = false; this.backgroundSupport = wrt.getBackgroundSupport(); } - close() { - this.mainWindow.close(); - } getBrowserWindowOption() { return { fullscreen: false, @@ -80,10 +77,6 @@ class WebApplication { console.log('webContents did-finish-load'); }); } - loadURL(url) { - console.log('loadURL'); - this.mainWindow.loadURL(url ? url : wrt.getPath()); - } suspend() { console.log('WebApplication : suspend'); BrowserWindow.getAllWindows().forEach((window) => { @@ -103,5 +96,16 @@ class WebApplication { window.setEnabled(true); }); } + sendAppControlEvent() { + const kAppControlEventScript = + '(function(){' + + 'var __event = document.createEvent("CustomEvent");' + + '__event.initCustomEvent("appcontrol", true, true, null);' + + 'document.dispatchEvent(__event);' + + 'for (var i=0; i < window.frames.length; i++)' + + 'window.frames[i].document.dispatchEvent(__event);' + + '})()'; + wrt.executeJS(this.mainWindow.webContents, kAppControlEventScript); + } } module.exports = WebApplication; -- 2.7.4 From e86bc36aedcdebf49052d953bf6285a9847d03f1 Mon Sep 17 00:00:00 2001 From: "min7.choi" Date: Mon, 11 Mar 2019 10:41:31 +0900 Subject: [PATCH 02/16] Remove duplicate code Activated in "browser-window-created" event Change-Id: If0aea9a670cb82121bda0eff0f479381fba0cc39 Signed-off-by: min7.choi --- wrt_app/src/runtime.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index 2f58fd0..ea2cc65 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -112,9 +112,6 @@ class Runtime { } else { _this.webApplication = new WebApplication(options); _this.webApplication.mainWindow.loadURL(src); - if (wrt.appID !== 'NVPDzvckj9.RuntimeAddonSetting') { - _this.extensionManager.activateAll(app); - } } // FIX ME : It must be supplemented to set a specific path wrt.setCookiePath(); -- 2.7.4 From 800518c7eb46b2a1ba728d50b8cdb05b9beaf13f Mon Sep 17 00:00:00 2001 From: "surya.kumar7" Date: Mon, 11 Mar 2019 16:04:45 +0530 Subject: [PATCH 03/16] Add multitasking support for vd apps Apps should not quit on suspend only when multitasking support is requested by the app. This is as per the following metadata's requirement: http://samsung.com/tv/metadata/multitasking.support Depends on: https://review.tizen.org/gerrit/201095 Change-Id: I0e9a394720a8d3302b2c08d5b775b49dcf064f71 --- wrt_app/src/web_application.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index 70a8afc..db8c768 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -34,6 +34,7 @@ class WebApplication { this.handleEvents(winopt); this.firstRendered = false; this.backgroundSupport = wrt.getBackgroundSupport(); + this.multitaskingSupport = wrt.getMultitaskingSupport(); } getBrowserWindowOption() { return { @@ -79,11 +80,14 @@ class WebApplication { } suspend() { console.log('WebApplication : suspend'); - BrowserWindow.getAllWindows().forEach((window) => { - window.hide(); - if (!this.backgroundSupport) - window.setEnabled(false); - }); + let windows = BrowserWindow.getAllWindows(); + windows.forEach((window) => window.hide()); + if (!this.multitaskingSupport) { + console.log('multitasking is not supported; quitting app') + app.quit(); + } else if (!this.backgroundSupport) { + windows.forEach((window) => window.setEnabled(false)); + } } resume() { console.log('WebApplication : resume'); -- 2.7.4 From d75bf4ed21d1bef9ab2f8f703f012029c1ce34a0 Mon Sep 17 00:00:00 2001 From: "surya.kumar7" Date: Wed, 13 Mar 2019 17:54:59 +0530 Subject: [PATCH 04/16] Handle SkipReload data sent via appcontrol on vd On vd, platform sends a SkipReload data via appcontrol to indicate app to merely resume and avoid reload. Added support for handling that Change-Id: Ibd2ddb6bae509f9619648c29dd15b7513846c605 Signed-off-by: surya.kumar7 --- wrt_app/src/runtime.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index ea2cc65..939841d 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -80,7 +80,15 @@ class Runtime { console.log('app-control'); let loadInfo = appControl.getLoadInfo(); let src = loadInfo.getSrc(); + if (_this.webApplication) { + let skipReload = appControl.getData('SkipReload'); + if (skipReload == 'Yes') { + console.log('skipping reload'); + _this.webApplication.resume(); + return; + } + let reload = loadInfo.getReload(); if (!reload) { if (src != _this.webApplication.mainWindow.getURL()) -- 2.7.4 From 1064c4f612bb89bc7f518ca95cf7459b94b6ad86 Mon Sep 17 00:00:00 2001 From: SangYong Park Date: Mon, 18 Mar 2019 18:15:41 +0900 Subject: [PATCH 05/16] Fix electron app launching issue Set proper app and electron library path Change-Id: I34e11c4c6152e8b47ff1c2517a4bcd9c49d763bd Signed-off-by: SangYong Park --- wrt_app/browser/init.js | 2 +- wrt_app/renderer/init.js | 3 ++- wrt_app/renderer/wrt_renderer.js | 3 +++ wrt_app/src/runtime.js | 11 ++++++----- 4 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 wrt_app/renderer/wrt_renderer.js diff --git a/wrt_app/browser/init.js b/wrt_app/browser/init.js index 1c688d7..663464c 100755 --- a/wrt_app/browser/init.js +++ b/wrt_app/browser/init.js @@ -14,5 +14,5 @@ * limitations under the License. */ -const wrt = require('../browser/wrt'); +const wrt = require('./wrt'); require(wrt.getElectronPath() + '/browser/init') diff --git a/wrt_app/renderer/init.js b/wrt_app/renderer/init.js index ead2a61..177283d 100755 --- a/wrt_app/renderer/init.js +++ b/wrt_app/renderer/init.js @@ -14,7 +14,8 @@ * limitations under the License. */ -require('../../electron.asar/renderer/init') +const wrtRenderer = require('./wrt_renderer'); +require(wrtRenderer.getElectronPath() + '/renderer/init') process.on('uncaughtException', function (error) { // Do nothing if the user has a custom uncaught exception handler. diff --git a/wrt_app/renderer/wrt_renderer.js b/wrt_app/renderer/wrt_renderer.js new file mode 100644 index 0000000..d642327 --- /dev/null +++ b/wrt_app/renderer/wrt_renderer.js @@ -0,0 +1,3 @@ +const {wrtRenderer} = process.binding('wrt_renderer'); + +module.exports = wrtRenderer diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index ea2cc65..dc1ee02 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -101,10 +101,12 @@ class Runtime { if (wrt.isElectronApp()) { console.log("Electron App launch"); - let filePath = src; - let pkgJson = require(filePath.substr(7, filePath.length - 12)); - let mainJsPath = filePath.substr(7, filePath.length - 19) + - (pkgJson.main || 'index.js'); + require('module').globalPaths.push(wrt.getAppPath()); + let filePath = src[7] === '/' ? src.substr(8) : src.substr(7); // strip "file://" + let pkgJson = require(filePath); + let pos = filePath.lastIndexOf('/'); + let mainJsPath = (pos !== -1 ? filePath.substr(0, pos + 1) : '') + + (pkgJson.main || 'index.js'); const Module = require('module'); Module._load(mainJsPath, Module, true); @@ -125,7 +127,6 @@ class Runtime { _this.webApplication.resume(); }); } - onAppControl() {} onLanguageChanged() {} onLowMemory() {} killAllProcesses() {} -- 2.7.4 From a0735f282d5a480a0e46033c32097d9102df5c7c Mon Sep 17 00:00:00 2001 From: YONGMAN SON Date: Mon, 25 Mar 2019 16:49:21 +0900 Subject: [PATCH 06/16] [VD feature] add preloading feature http://wiki.vd.sec.samsung.net/x/Kr5iAw WRTJS TCs -> 1.5 Change-Id: I929356b3f196c6476d4ee9199b1f80fb5e8729a8 --- wrt_app/src/runtime.js | 14 ++++++++++++++ wrt_app/src/web_application.js | 19 +++++++++++++------ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index acc25c0..8017068 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -82,6 +82,15 @@ class Runtime { let src = loadInfo.getSrc(); if (_this.webApplication) { + if (_this.webApplication.preloadState == 'readyToShow') { + _this.webApplication.show(); + } + + let launchMode = appControl.getData('http://samsung.com/appcontrol/data/launch_mode'); + if (launchMode != 'backgroundAtStartup') { + _this.webApplication.preloadState = 'none'; + } + let skipReload = appControl.getData('SkipReload'); if (skipReload == 'Yes') { console.log('skipping reload'); @@ -121,6 +130,11 @@ class Runtime { app.emit('ready'); } else { _this.webApplication = new WebApplication(options); + let launchMode = appControl.getData('http://samsung.com/appcontrol/data/launch_mode'); + if (launchMode == 'backgroundAtStartup') { + console.log('backgroundAtStartup'); + _this.webApplication.preloadState = "preload"; + } _this.webApplication.mainWindow.loadURL(src); } // FIX ME : It must be supplemented to set a specific path diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index db8c768..ade5d7d 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -32,7 +32,7 @@ class WebApplication { } console.log('mainWindow id : ' + this.mainWindow.id); this.handleEvents(winopt); - this.firstRendered = false; + this.preloadState = 'none'; this.backgroundSupport = wrt.getBackgroundSupport(); this.multitaskingSupport = wrt.getMultitaskingSupport(); } @@ -56,12 +56,12 @@ class WebApplication { this.mainWindow.on('ready-to-show', function() { console.log('mainWindow ready-to-show'); wrt.hideSplashScreen(1); - self.firstRendered = true; - - if (!self.mainWindow.isVisible()) { - console.log('show browserWindow'); - self.mainWindow.show(); + if (self.preloadState == 'preload') { + self.preloadState = 'readyToShow'; + console.log('preloading show is skipped!'); + return; } + self.show(); }); this.mainWindow.on('closed', function() { console.log('mainWindow closed!'); @@ -111,5 +111,12 @@ class WebApplication { '})()'; wrt.executeJS(this.mainWindow.webContents, kAppControlEventScript); } + show() { + this.preloadState = 'none'; + if (!this.mainWindow.isVisible()) { + console.log('show browserWindow'); + this.mainWindow.show(); + } + } } module.exports = WebApplication; -- 2.7.4 From ab48671261d6adb069b1ceddd67b9331a5e688e4 Mon Sep 17 00:00:00 2001 From: "surya.kumar7" Date: Tue, 12 Mar 2019 14:22:07 +0530 Subject: [PATCH 07/16] fixup! Implement app control handler Modified certain code to prevent inadvertent app exit, wrong sequence and fixed an undefined object Change-Id: Iaf31edaadd803ccf45d7b9edfdb67f4cf4e9baee Signed-off-by: surya.kumar7 --- wrt_app/src/runtime.js | 31 +++++++++++++------------------ wrt_app/src/web_application.js | 7 ++++++- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index 8017068..d73db46 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -81,7 +81,17 @@ class Runtime { let loadInfo = appControl.getLoadInfo(); let src = loadInfo.getSrc(); - if (_this.webApplication) { + if (wrt.isElectronApp()) { + console.log("Electron App launch"); + let filePath = src; + let pkgJson = require(filePath.substr(7, filePath.length - 12)); + let mainJsPath = filePath.substr(7, filePath.length - 19) + + (pkgJson.main || 'index.js'); + + const Module = require('module'); + Module._load(mainJsPath, Module, true); + app.emit('ready'); + } else if (_this.webApplication) { if (_this.webApplication.preloadState == 'readyToShow') { _this.webApplication.show(); } @@ -90,7 +100,6 @@ class Runtime { if (launchMode != 'backgroundAtStartup') { _this.webApplication.preloadState = 'none'; } - let skipReload = appControl.getData('SkipReload'); if (skipReload == 'Yes') { console.log('skipping reload'); @@ -109,25 +118,11 @@ class Runtime { if (reload && appControl.getOperation() == 'http://tizen.org/appcontrol/operation/main') reload = false; if (reload) { - _this.webApplication.mainWindow.destroy(); - _this.webApplication = nullptr; + _this.webApplication.closeWindows(); + _this.webApplication.mainWindow.loadURL(src); } else { _this.webApplication.sendAppControlEvent(); } - } - - if (wrt.isElectronApp()) { - console.log("Electron App launch"); - require('module').globalPaths.push(wrt.getAppPath()); - let filePath = src[7] === '/' ? src.substr(8) : src.substr(7); // strip "file://" - let pkgJson = require(filePath); - let pos = filePath.lastIndexOf('/'); - let mainJsPath = (pos !== -1 ? filePath.substr(0, pos + 1) : '') + - (pkgJson.main || 'index.js'); - - const Module = require('module'); - Module._load(mainJsPath, Module, true); - app.emit('ready'); } else { _this.webApplication = new WebApplication(options); let launchMode = appControl.getData('http://samsung.com/appcontrol/data/launch_mode'); diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index ade5d7d..730f307 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -91,7 +91,7 @@ class WebApplication { } resume() { console.log('WebApplication : resume'); - if (!this.firstRendered) { + if (this.preloadState != 'none') { return; } BrowserWindow.getAllWindows().forEach((window) => { @@ -117,6 +117,11 @@ class WebApplication { console.log('show browserWindow'); this.mainWindow.show(); } + closeWindows() { + BrowserWindow.getAllWindows().forEach((window) => { + if (window != this.mainWindow) + window.destroy(); + }); } } module.exports = WebApplication; -- 2.7.4 From 533b3c74ae674681ec2dc402cc35204cb98bea91 Mon Sep 17 00:00:00 2001 From: KwangHyuk Kim Date: Wed, 27 Mar 2019 01:20:43 +0000 Subject: [PATCH 08/16] Revert "fixup! Implement app control handler" This reverts commit ab48671261d6adb069b1ceddd67b9331a5e688e4. Change-Id: I05eb2480d72e7ec66bd0e09ca780639138887fbc --- wrt_app/src/runtime.js | 31 ++++++++++++++++++------------- wrt_app/src/web_application.js | 7 +------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index d73db46..8017068 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -81,17 +81,7 @@ class Runtime { let loadInfo = appControl.getLoadInfo(); let src = loadInfo.getSrc(); - if (wrt.isElectronApp()) { - console.log("Electron App launch"); - let filePath = src; - let pkgJson = require(filePath.substr(7, filePath.length - 12)); - let mainJsPath = filePath.substr(7, filePath.length - 19) + - (pkgJson.main || 'index.js'); - - const Module = require('module'); - Module._load(mainJsPath, Module, true); - app.emit('ready'); - } else if (_this.webApplication) { + if (_this.webApplication) { if (_this.webApplication.preloadState == 'readyToShow') { _this.webApplication.show(); } @@ -100,6 +90,7 @@ class Runtime { if (launchMode != 'backgroundAtStartup') { _this.webApplication.preloadState = 'none'; } + let skipReload = appControl.getData('SkipReload'); if (skipReload == 'Yes') { console.log('skipping reload'); @@ -118,11 +109,25 @@ class Runtime { if (reload && appControl.getOperation() == 'http://tizen.org/appcontrol/operation/main') reload = false; if (reload) { - _this.webApplication.closeWindows(); - _this.webApplication.mainWindow.loadURL(src); + _this.webApplication.mainWindow.destroy(); + _this.webApplication = nullptr; } else { _this.webApplication.sendAppControlEvent(); } + } + + if (wrt.isElectronApp()) { + console.log("Electron App launch"); + require('module').globalPaths.push(wrt.getAppPath()); + let filePath = src[7] === '/' ? src.substr(8) : src.substr(7); // strip "file://" + let pkgJson = require(filePath); + let pos = filePath.lastIndexOf('/'); + let mainJsPath = (pos !== -1 ? filePath.substr(0, pos + 1) : '') + + (pkgJson.main || 'index.js'); + + const Module = require('module'); + Module._load(mainJsPath, Module, true); + app.emit('ready'); } else { _this.webApplication = new WebApplication(options); let launchMode = appControl.getData('http://samsung.com/appcontrol/data/launch_mode'); diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index 730f307..ade5d7d 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -91,7 +91,7 @@ class WebApplication { } resume() { console.log('WebApplication : resume'); - if (this.preloadState != 'none') { + if (!this.firstRendered) { return; } BrowserWindow.getAllWindows().forEach((window) => { @@ -117,11 +117,6 @@ class WebApplication { console.log('show browserWindow'); this.mainWindow.show(); } - closeWindows() { - BrowserWindow.getAllWindows().forEach((window) => { - if (window != this.mainWindow) - window.destroy(); - }); } } module.exports = WebApplication; -- 2.7.4 From 87fb5ae279e13860c16bb4c83986270a4b662b9e Mon Sep 17 00:00:00 2001 From: YONGMAN SON Date: Wed, 27 Mar 2019 13:49:35 +0900 Subject: [PATCH 09/16] [VD feature] Additional implementation of preloading preloaded widget suspend. ------------------------------- [VD feature] add preloading feature http://wiki.vd.sec.samsung.net/x/Kr5iAw WRTJS TCs -> 1.5 Change-Id: I2ddc1e37489ad06afe42335df0d02c70a0d5fe0e --- wrt_app/src/web_application.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index ade5d7d..23d8cd8 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -32,6 +32,7 @@ class WebApplication { } console.log('mainWindow id : ' + this.mainWindow.id); this.handleEvents(winopt); + this.firstRendered = false; this.preloadState = 'none'; this.backgroundSupport = wrt.getBackgroundSupport(); this.multitaskingSupport = wrt.getMultitaskingSupport(); @@ -56,6 +57,7 @@ class WebApplication { this.mainWindow.on('ready-to-show', function() { console.log('mainWindow ready-to-show'); wrt.hideSplashScreen(1); + self.firstRendered = true; if (self.preloadState == 'preload') { self.preloadState = 'readyToShow'; console.log('preloading show is skipped!'); @@ -76,6 +78,9 @@ class WebApplication { }); this.mainWindow.webContents.on('did-finish-load', function() { console.log('webContents did-finish-load'); + if (self.preloadState == 'readyToShow' || self.preloadState == 'preload') { + self.suspend(); + } }); } suspend() { @@ -92,6 +97,7 @@ class WebApplication { resume() { console.log('WebApplication : resume'); if (!this.firstRendered) { + console.log('WebApplication : resume firstRendered is false'); return; } BrowserWindow.getAllWindows().forEach((window) => { @@ -112,6 +118,7 @@ class WebApplication { wrt.executeJS(this.mainWindow.webContents, kAppControlEventScript); } show() { + console.log('WebApplication : show'); this.preloadState = 'none'; if (!this.mainWindow.isVisible()) { console.log('show browserWindow'); -- 2.7.4 From 541101aca99c20daeaf9f312fea1c3bbeb48ac33 Mon Sep 17 00:00:00 2001 From: "jaekuk, lee" Date: Fri, 22 Mar 2019 15:03:35 +0900 Subject: [PATCH 10/16] Implement Inspector Depends on: https://review.tizen.org/gerrit/201467 Change-Id: Ia0ea9c08cf1e6411e0105b2b1b12fc62e093a856 Signed-off-by: jaekuk, lee --- wrt_app/src/runtime.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index acc25c0..3831bac 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -29,6 +29,7 @@ class Runtime { this.handleIpcMessages(); this.extensionManager = null; this.isLaunched = false; + this.debug_mode = false; var _this = this; app.on('will-finish-launching', function() { @@ -125,6 +126,12 @@ class Runtime { } // FIX ME : It must be supplemented to set a specific path wrt.setCookiePath(); + + // AUL public key - To support debug argument + if (!_this.debug_mode && appControl.getData('__AUL_DEBUG__') == "1") { + _this.debug_mode = true; + _this.launchInspector(appControl); + } }); wrt.on('suspend', function() { console.log('suspend'); @@ -158,5 +165,9 @@ class Runtime { return _this.extensionManager.deactivate(app, name); }); } + launchInspector(appControl) { + var data = { "port" : [ wrt.getDebuggingPort().toString() ] }; + appControl.reply(data); + } } module.exports = Runtime; -- 2.7.4 From 1540a53a8685c65e0c9df6ded36b130321d1056c Mon Sep 17 00:00:00 2001 From: "jaekuk, lee" Date: Fri, 29 Mar 2019 01:51:28 +0000 Subject: [PATCH 11/16] Update gbs.conf Change-Id: Ia6f9f45f47dbbc9941847b6f9e3202cb7ba94708 Signed-off-by: jaekuk, lee --- build/gbs.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/gbs.conf b/build/gbs.conf index 16e3127..af66f04 100755 --- a/build/gbs.conf +++ b/build/gbs.conf @@ -56,7 +56,7 @@ repos = repo.tv_product_5.5_musem, repo.tv_product_5.5_base buildroot = ~/GBS-ROOT-5.5-TV-PRODUCT-MUSEM [repo.tv_product_5.5_base] -url = http://168.219.244.109/base/tizen-5.0-base-main2019/standard/latest/ +url = http://10.113.136.32/download_trbs/snapshots/tizen/5.5-vd-base/latest/repos/standard/packages/ [repo.tv_product_5.5_musem] url = http://10.113.136.26/snapshots/VD/Tizen-5.5/MAIN2019-MuseM/latest/repos/MuseM/packages/ -- 2.7.4 From 360cf53e778c7c639af6b18719a06655338c7528 Mon Sep 17 00:00:00 2001 From: "jaekuk, lee" Date: Fri, 29 Mar 2019 13:31:13 +0900 Subject: [PATCH 12/16] Update gbs.conf add user ID and PW for spin account Change-Id: I314fedeee008d61895d096fae086b20d11cd36d0 Signed-off-by: jaekuk, lee --- build/gbs.conf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/gbs.conf b/build/gbs.conf index af66f04..0acd0d6 100755 --- a/build/gbs.conf +++ b/build/gbs.conf @@ -57,6 +57,8 @@ buildroot = ~/GBS-ROOT-5.5-TV-PRODUCT-MUSEM [repo.tv_product_5.5_base] url = http://10.113.136.32/download_trbs/snapshots/tizen/5.5-vd-base/latest/repos/standard/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== [repo.tv_product_5.5_musem] url = http://10.113.136.26/snapshots/VD/Tizen-5.5/MAIN2019-MuseM/latest/repos/MuseM/packages/ -- 2.7.4 From ad5e83d0915f6b8e47e96b44c3a2ca37c207f99b Mon Sep 17 00:00:00 2001 From: "surya.kumar7" Date: Wed, 27 Mar 2019 15:14:35 +0530 Subject: [PATCH 13/16] fixup! Implement app control handler Modified certain code to prevent inadvertent app exit, wrong sequence and fixed an undefined object Change-Id: I190356693087650608d0bae356c8b95ce97d8a6d Signed-off-by: surya.kumar7 --- wrt_app/src/runtime.js | 90 +++++++++++++++++++++--------------------- wrt_app/src/web_application.js | 13 +++++- 2 files changed, 57 insertions(+), 46 deletions(-) diff --git a/wrt_app/src/runtime.js b/wrt_app/src/runtime.js index 76a58e7..eb45592 100755 --- a/wrt_app/src/runtime.js +++ b/wrt_app/src/runtime.js @@ -82,61 +82,61 @@ class Runtime { let loadInfo = appControl.getLoadInfo(); let src = loadInfo.getSrc(); - if (_this.webApplication) { - if (_this.webApplication.preloadState == 'readyToShow') { - _this.webApplication.show(); - } - - let launchMode = appControl.getData('http://samsung.com/appcontrol/data/launch_mode'); - if (launchMode != 'backgroundAtStartup') { - _this.webApplication.preloadState = 'none'; - } - - let skipReload = appControl.getData('SkipReload'); - if (skipReload == 'Yes') { - console.log('skipping reload'); - _this.webApplication.resume(); - return; - } - - let reload = loadInfo.getReload(); - if (!reload) { - if (src != _this.webApplication.mainWindow.getURL()) - reload = true; - } - // handle http://tizen.org/appcontrol/operation/main operation specially. - // only menu-screen app can send launch request with main operation. - // in this case, web app should have to resume web app not reset. - if (reload && appControl.getOperation() == 'http://tizen.org/appcontrol/operation/main') - reload = false; - if (reload) { - _this.webApplication.mainWindow.destroy(); - _this.webApplication = nullptr; - } else { - _this.webApplication.sendAppControlEvent(); - } - } - if (wrt.isElectronApp()) { - console.log("Electron App launch"); - require('module').globalPaths.push(wrt.getAppPath()); + console.log('Electron App launch'); + const Module = require('module'); + Module.globalPaths.push(wrt.getAppPath()); let filePath = src[7] === '/' ? src.substr(8) : src.substr(7); // strip "file://" let pkgJson = require(filePath); let pos = filePath.lastIndexOf('/'); + let mainJsPath = (pos !== -1 ? filePath.substr(0, pos + 1) : '') + (pkgJson.main || 'index.js'); - - const Module = require('module'); + console.log('loading path:', mainJsPath); Module._load(mainJsPath, Module, true); app.emit('ready'); } else { - _this.webApplication = new WebApplication(options); - let launchMode = appControl.getData('http://samsung.com/appcontrol/data/launch_mode'); - if (launchMode == 'backgroundAtStartup') { - console.log('backgroundAtStartup'); - _this.webApplication.preloadState = "preload"; + console.log('Tizen Web App launch'); + if (!_this.webApplication) { + console.log('Creating WebApplication'); + options.launchMode = appControl.getData('http://samsung.com/appcontrol/data/launch_mode'); + _this.webApplication = new WebApplication(options); + _this.webApplication.mainWindow.loadURL(src); + } else { + console.log('Handling app-control event'); + if (_this.webApplication.preloadState == 'readyToShow') { + _this.webApplication.show(); + } else { + let launchMode = appControl.getData('http://samsung.com/appcontrol/data/launch_mode'); + if (launchMode != 'backgroundAtStartup') { + _this.webApplication.preloadState = 'none'; + } + } + + let skipReload = appControl.getData('SkipReload'); + if (skipReload == 'Yes') { + console.log('skipping reload'); + _this.webApplication.resume(); + return; + } + + let reload = loadInfo.getReload(); + if (!reload) { + if (src != _this.webApplication.mainWindow.getURL()) + reload = true; + } + // handle http://tizen.org/appcontrol/operation/main operation specially. + // only menu-screen app can send launch request with main operation. + // in this case, web app should have to resume web app not reset. + if (reload && appControl.getOperation() == 'http://tizen.org/appcontrol/operation/main') + reload = false; + if (reload) { + _this.webApplication.closeWindows(); + _this.webApplication.mainWindow.loadURL(src); + } else { + _this.webApplication.sendAppControlEvent(); + } } - _this.webApplication.mainWindow.loadURL(src); } // FIX ME : It must be supplemented to set a specific path wrt.setCookiePath(); diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index 23d8cd8..b9c9e3a 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -33,9 +33,14 @@ class WebApplication { console.log('mainWindow id : ' + this.mainWindow.id); this.handleEvents(winopt); this.firstRendered = false; - this.preloadState = 'none'; this.backgroundSupport = wrt.getBackgroundSupport(); this.multitaskingSupport = wrt.getMultitaskingSupport(); + if (options.launchMode == 'backgroundAtStartup') { + console.log('backgroundAtStartup'); + this.preloadState = 'preload'; + } else { + this.preloadState = 'none'; + } } getBrowserWindowOption() { return { @@ -125,5 +130,11 @@ class WebApplication { this.mainWindow.show(); } } + closeWindows() { + BrowserWindow.getAllWindows().forEach((window) => { + if (window != this.mainWindow) + window.destroy(); + }); + } } module.exports = WebApplication; -- 2.7.4 From 4b44402bce8931a7f635f5b9a38f2248e20ccf31 Mon Sep 17 00:00:00 2001 From: "surya.kumar7" Date: Mon, 8 Apr 2019 17:48:51 +0530 Subject: [PATCH 14/16] Handle Certificate error Modified the existing code to handle certificate error as per electron's design Depends on: https://review.tizen.org/gerrit/202994 Change-Id: Ic644227a300854859ceb2a4fc6e8657005cade4f Signed-off-by: surya.kumar7 --- wrt_app/src/web_application.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index b9c9e3a..213da92 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -31,6 +31,8 @@ class WebApplication { }); } console.log('mainWindow id : ' + this.mainWindow.id); + this.pendingID = 0; + this.pendingCallbacks = new Map(); this.handleEvents(winopt); this.firstRendered = false; this.backgroundSupport = wrt.getBackgroundSupport(); @@ -87,6 +89,26 @@ class WebApplication { self.suspend(); } }); + wrt.on('permission-response', function(event, id, result) { + let callback = self.pendingCallbacks.get(id); + if (typeof callback === 'function') { + console.log('calling permission response callback'); + callback(result); + self.pendingCallbacks.delete(id); + } + }); + app.on('certificate-error', function(event, webContents, url, error, certificate, callback) { + console.log('A certificate error has occurred'); + event.preventDefault(); + if (certificate.data) { + const id = ++self.pendingID; + self.pendingCallbacks.set(id, callback); + wrt.handleCertificateError(id, webContents, certificate.data, url); + } else { + console.log('Certificate could not be opened'); + callback(false); + } + }); } suspend() { console.log('WebApplication : suspend'); -- 2.7.4 From e36ea90ac67230d7fdacd5056ddb15038e03f78c Mon Sep 17 00:00:00 2001 From: SangYong Park Date: Wed, 10 Apr 2019 15:19:22 +0900 Subject: [PATCH 15/16] Ignore multiple ready-to-show event ready-to-show event is occurred when web page is first rendered. but, multiple ready-to-show event shows web page in preload mode. Change-Id: I134f02fe1ce3acc31880c7e0c2d4c19abd233c1f Signed-off-by: SangYong Park --- wrt_app/src/web_application.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wrt_app/src/web_application.js b/wrt_app/src/web_application.js index b9c9e3a..e4e9676 100755 --- a/wrt_app/src/web_application.js +++ b/wrt_app/src/web_application.js @@ -60,6 +60,8 @@ class WebApplication { handleEvents(options) { var self = this; this.mainWindow.on('ready-to-show', function() { + if (self.firstRendered) + return; console.log('mainWindow ready-to-show'); wrt.hideSplashScreen(1); self.firstRendered = true; -- 2.7.4 From c07a1cbeae422f292e2d7b2572c0be373b0247dd Mon Sep 17 00:00:00 2001 From: Youngsoo Choi Date: Tue, 9 Apr 2019 19:12:58 -0700 Subject: [PATCH 16/16] Add build scripts This updates gbs.conf and adds build scripts. * For public targets $ ./tizen/build//build_standard_{ARCHITECTURE}.sh $ ./tizen/build//build_emulator_{ARCHITECTURE}.sh * For product tv target $ ./tizen/build/build_tv.sh * For product wearable target $ tizen/build/build_wearable.sh Change-Id: I0f59dfecc2db1a2ae44e76851cf72fdd4cf27378 Signed-off-by: Youngsoo Choi --- build/gbs.conf | 114 ---------------- tizen/build/build_emulator_ix86.sh | 5 + tizen/build/build_emulator_x86_64.sh | 5 + tizen/build/build_standard_aarch64.sh | 5 + tizen/build/build_standard_armv7l.sh | 5 + tizen/build/build_standard_ix86.sh | 5 + tizen/build/build_standard_x86_64.sh | 5 + tizen/build/build_tv.sh | 5 + tizen/build/build_wearable.sh | 5 + tizen/build/common.sh | 119 +++++++++++++++++ tizen/build/gbs.conf | 237 ++++++++++++++++++++++++++++++++++ 11 files changed, 396 insertions(+), 114 deletions(-) delete mode 100755 build/gbs.conf create mode 100755 tizen/build/build_emulator_ix86.sh create mode 100755 tizen/build/build_emulator_x86_64.sh create mode 100755 tizen/build/build_standard_aarch64.sh create mode 100755 tizen/build/build_standard_armv7l.sh create mode 100755 tizen/build/build_standard_ix86.sh create mode 100755 tizen/build/build_standard_x86_64.sh create mode 100755 tizen/build/build_tv.sh create mode 100755 tizen/build/build_wearable.sh create mode 100644 tizen/build/common.sh create mode 100755 tizen/build/gbs.conf diff --git a/build/gbs.conf b/build/gbs.conf deleted file mode 100755 index 0acd0d6..0000000 --- a/build/gbs.conf +++ /dev/null @@ -1,114 +0,0 @@ -############################################### -# -# Tizen v5.5 public unified -# -[obs.tizen] -url = https://api.tizen.org - -[repo.tz_5.5_standard] -url = http://download.tizen.org/snapshots/tizen/unified/latest/repos/standard/packages/ - -[repo.public_5.5_base_standard] -url = http://download.tizen.org/snapshots/tizen/base/latest/repos/standard/packages/ - - -############################################### -# -# Tizen v5.5 public standard -# -[profile.tz_5.5_standard] -obs = obs.tizen -repos = repo.public_5.5_base_standard, repo.tz_5.5_standard -buildroot = ~/GBS-ROOT-5.5-STANDARD - - -############################################### -# -# Tizen v5.0 public unified -# -[obs.tizen] -url = https://api.tizen.org - -[repo.tz_5.0_standard] -url = http://download.tizen.org/snapshots/tizen/5.0-unified/latest/repos/standard/packages/ - -[repo.public_5.0_base_standard] -url = http://download.tizen.org/snapshots/tizen/5.0-base/latest/repos/standard/packages/ - - -############################################### -# -# Tizen v5.0 public standard -# -[profile.tz_5.0_standard] -obs = obs.tizen -repos = repo.public_5.0_base_standard, repo.tz_5.0_standard -buildroot = ~/GBS-ROOT-5.0-STANDARD - - -############################################# -# -# Tizen v5.5 for product tv (MuseM armv7l) -# -[profile.tztv_v5.5_arm-musem] -# obs = obs.tizen_product_tv -repos = repo.tv_product_5.5_musem, repo.tv_product_5.5_base -buildroot = ~/GBS-ROOT-5.5-TV-PRODUCT-MUSEM - -[repo.tv_product_5.5_base] -url = http://10.113.136.32/download_trbs/snapshots/tizen/5.5-vd-base/latest/repos/standard/packages/ -user = blinkbot -passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== - -[repo.tv_product_5.5_musem] -url = http://10.113.136.26/snapshots/VD/Tizen-5.5/MAIN2019-MuseM/latest/repos/MuseM/packages/ - - -############################################# -# -# Tizen v5.0 for product tv (MuseM armv7l) -# -[profile.tztv_v5.0_arm-musem] -# obs = obs.tizen_product_tv -repos = repo.tv_product_5.0_musem, repo.tv_product_5.0_base -buildroot = ~/GBS-ROOT-5.0-TV-PRODUCT-MUSEM - -[repo.tv_product_5.0_base] -url = http://168.219.244.109/base/tizen-5.0-base-main2019/standard/latest/ - -[repo.tv_product_5.0_musem] -url = http://168.219.244.109/products/tv/archive/2019/MAIN2019/MuseM/latest/ - - -############################################# -# -# Tizen v5.0 for product tv (KantM2 armv7l) -# -[profile.tztv_5.0_arm-kantm2] -obs = obs.tizen_product_tv -repos = repo.tv_product_5.0_kantm2, repo.tv_product_5.0_base -buildroot = ~/GBS-ROOT-5.0-TV-PRODUCT-KANTM2 - -[repo.tv_product_5.0_base] -url = http://168.219.244.109/base/tizen-5.0-base-main2019/standard/latest/ - -[repo.tv_product_5.0_kantm2] -url = http://168.219.244.109/products/tv/archive/2019/MAIN2019/KantM2_ATSC/latest/ - - -############################################# -# -# Tizen v5.0 for product tv (KantM armv7l) -# -[profile.tztv_5.0_arm-kantm] -obs = obs.tizen_product_tv -repos = repo.tv_product_5.0_kantm, repo.tv_product_5.0_base -buildroot = ~/GBS-ROOT-5.0-TV-PRODUCT-KANTM - -[repo.tv_product_5.0_base] -url = http://168.219.244.109/base/tizen-5.0-base-main2019/standard/latest - -[repo.tv_product_5.0_kantm] -url = http://168.219.244.109/hijacks/PRECEDENCE/PRE_5.0MIGRATION-KantM/latest/ - - diff --git a/tizen/build/build_emulator_ix86.sh b/tizen/build/build_emulator_ix86.sh new file mode 100755 index 0000000..3b2bbbc --- /dev/null +++ b/tizen/build/build_emulator_ix86.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. `dirname $0`/common.sh + +setupAndExecuteTargetBuild unified --emulator "$@" -A i586 diff --git a/tizen/build/build_emulator_x86_64.sh b/tizen/build/build_emulator_x86_64.sh new file mode 100755 index 0000000..1ae5ec2 --- /dev/null +++ b/tizen/build/build_emulator_x86_64.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. `dirname $0`/common.sh + +setupAndExecuteTargetBuild unified --emulator "$@" -A x86_64 diff --git a/tizen/build/build_standard_aarch64.sh b/tizen/build/build_standard_aarch64.sh new file mode 100755 index 0000000..074c9e1 --- /dev/null +++ b/tizen/build/build_standard_aarch64.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. `dirname $0`/common.sh + +setupAndExecuteTargetBuild unified --standard "$@" -A aarch64 diff --git a/tizen/build/build_standard_armv7l.sh b/tizen/build/build_standard_armv7l.sh new file mode 100755 index 0000000..4e6c1e4 --- /dev/null +++ b/tizen/build/build_standard_armv7l.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. `dirname $0`/common.sh + +setupAndExecuteTargetBuild unified --standard "$@" -A armv7l diff --git a/tizen/build/build_standard_ix86.sh b/tizen/build/build_standard_ix86.sh new file mode 100755 index 0000000..c467250 --- /dev/null +++ b/tizen/build/build_standard_ix86.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. `dirname $0`/common.sh + +setupAndExecuteTargetBuild unified --standard "$@" -A i586 diff --git a/tizen/build/build_standard_x86_64.sh b/tizen/build/build_standard_x86_64.sh new file mode 100755 index 0000000..a37630b --- /dev/null +++ b/tizen/build/build_standard_x86_64.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. `dirname $0`/common.sh + +setupAndExecuteTargetBuild unified --standard "$@" -A x86_64 diff --git a/tizen/build/build_tv.sh b/tizen/build/build_tv.sh new file mode 100755 index 0000000..5074bcd --- /dev/null +++ b/tizen/build/build_tv.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. `dirname $0`/common.sh + +setupAndExecuteTargetBuild tv "$@" diff --git a/tizen/build/build_wearable.sh b/tizen/build/build_wearable.sh new file mode 100755 index 0000000..42e0f2d --- /dev/null +++ b/tizen/build/build_wearable.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +. `dirname $0`/common.sh + +setupAndExecuteTargetBuild wearable "$@" diff --git a/tizen/build/common.sh b/tizen/build/common.sh new file mode 100644 index 0000000..48f06e2 --- /dev/null +++ b/tizen/build/common.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +export SCRIPTDIR=$(readlink -e $(dirname $0)) +export TOPDIR=$(readlink -f "${SCRIPTDIR}/../..") +export CHROME_SRC="${TOPDIR}" + +# Please set DEFAULT_TIZEN_VERSION to empty value for the latest tizen version +# or set DEFAULT_TIZEN_VERSION to current tizen version for the others. +export DEFAULT_TIZEN_VERSION=latest + +if [ "$(echo "$@" | grep -e "--tizen")" != "" ]; then + tizen_version=$(echo $@ | sed -e 's#.*--tizen_\([0-9.]*\).*#\1#') + if $(echo $tizen_version | grep -qe "^[-\?[0-9]\+\.\?[0-9]*$" && echo true || echo false); then + DEFAULT_TIZEN_VERSION=$tizen_version + else + DEFAULT_TIZEN_VERSION=latest + fi +fi + +function setupAndExecuteTargetBuild() { + local platform="$1" + shift + + local PROFILE + local ARCHITECTURE + local CONF_FLAG + local -a ARGS + + # "|| :" means "or always succeeding built-in command" + PROFILE=$(echo "$@" | grep -Po "(?<=\-P\s)[^\s]*" | uniq || :) + ARCHITECTURE=$(echo "$@" | grep -Po "(?<=\-A\s)[^\s]*" | uniq || :) + GBS_ROOT=$(echo "$@" | grep -Po "(?<=\-B\s)[^\s]*" | uniq || :) + + local count=0 + while [[ $# > 0 ]]; do + count=$(( $count + 1 )) + case "$1" in + --standard*) + if [ "$DEFAULT_TIZEN_VERSION" == "latest" ]; then + echo $1 + PROFILE=tz_$(echo $1 | sed 's/--//g') + else + PROFILE=tz_${DEFAULT_TIZEN_VERSION}_$(echo $1 | sed 's/--//g') + fi + ;; + --emulator*) + if [ "$DEFAULT_TIZEN_VERSION" == "latest" ]; then + PROFILE=tz_$(echo $1 | sed 's/--//g') + else + PROFILE=tz_${DEFAULT_TIZEN_VERSION}_$(echo $1 | sed 's/--//g') + fi + ;; + --tizen*) + ;; + *) + ARGS[$count]="$1" + ;; + esac + shift; + done + + if [ "$PROFILE" == "" ]; then + if [[ $platform == "tv" ]]; then + if [ "$DEFAULT_TIZEN_VERSION" == "latest" ]; then + # FIXME: The latest version of platform hasn't been released yet. + PROFILE=tztv_5.5_arm-musem + fi + elif [[ $platform == "wearable" ]]; then + if [ "$DEFAULT_TIZEN_VERSION" == "latest" ]; then + PROFILE=tzwr_5.5_armv7l_spin + fi + else + echo "Cannot set default PROFILE for platform=${platform}" + exit 1 + fi + fi + + if [ "$MIRROR" == "1" ]; then + PROFILE=${PROFILE}_mirror + fi + + echo "Set the profile : $PROFILE" + + if [ "$ARCHITECTURE" == "" ]; then + if [[ $platform == "mobile" ]]; then + ARCHITECTURE=armv7l + elif [[ $platform == "tv" ]]; then + ARCHITECTURE=armv7l + elif [[ $platform == "wearable" ]]; then + ARCHITECTURE=armv7l + else + echo "Cannot set default ARCHITECTURE for platform=${platform}" + exit 1 + fi + fi + echo "Set the architecture : $ARCHITECTURE" + + local BRANCH=$(echo $(basename $(git symbolic-ref HEAD))) + if [ "$(echo $BRANCH | grep dev)" != "" ]; then + BRANCH=dev + elif [ "$(echo $BRANCH | grep beta)" != "" ]; then + BRANCH=beta + else + BRANCH=release + fi + + local GBS_ROOT_OPT= + if [ "$USE_GLOBAL_GBS_CONF" == "" ]; then + CONF_FLAG="--conf ${SCRIPTDIR}/gbs.conf" + if [ "$GBS_ROOT" == "" ]; then + GBS_ROOT_OPT="-B ~/GBS-ROOT-WRTJS-${PROFILE^^}-TIZEN_${DEFAULT_TIZEN_VERSION^^}-${BRANCH^^}" + else + GBS_ROOT_OPT="-B $GBS_ROOT" + fi + fi + + gbs $CONF_FLAG build -P $PROFILE --include-all -A $ARCHITECTURE "${ARGS[@]}" \ + $GBS_ROOT_OPT +} diff --git a/tizen/build/gbs.conf b/tizen/build/gbs.conf new file mode 100755 index 0000000..9c37399 --- /dev/null +++ b/tizen/build/gbs.conf @@ -0,0 +1,237 @@ +############################################### +# +# Tizen v5.5 public unified +# +[obs.tizen] +url = https://api.tizen.org + +[repo.tz_standard] +url = http://download.tizen.org/snapshots/tizen/unified/latest/repos/standard/packages/ + +[repo.tz_standard] +url = http://download.tizen.org/snapshots/tizen/unified/latest/repos/standard/packages/ + +[repo.tz_standard_mirror] +url = http://10.113.136.32/download/public_mirror/tizen/unified/latest/repos/standard/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +[repo.tz_emulator] +url = http://download.tizen.org/snapshots/tizen/unified/latest/repos/emulator/packages/ + +[repo.tz_emulator_mirror] +url = http://10.113.136.32/download/public_mirror/tizen/unified/latest/repos/emulator/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +[repo.public_base_standard] +url = http://download.tizen.org/snapshots/tizen/base/latest/repos/standard/packages/ + +[repo.public_base_standard] +url = http://download.tizen.org/snapshots/tizen/base/latest/repos/standard/packages/ + +[repo.public_base_standard_mirror] +url = http://10.113.136.32/download/public_mirror/tizen/base/latest/repos/standard/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +############################################### +# +# Tizen v5.5 public standard +# +[profile.tz_standard] +obs = obs.tizen +repos = repo.public_base_standard, repo.tz_standard +buildroot = ~/GBS-ROOT-STANDARD + +############################################### +# +# Tizen v5.0 public unified +# +[obs.tizen] +url = https://api.tizen.org + +[repo.tz_5.0_standard] +url = http://download.tizen.org/snapshots/tizen/5.0-unified/latest/repos/standard/packages/ + +[repo.tz_5.0_standard_mirror] +url = http://10.113.136.32/download/public_mirror/tizen/5.0-unified/latest/repos/standard/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +[repo.tz_5.0_emulator] +url = http://download.tizen.org/snapshots/tizen/5.0-unified/latest/repos/emulator/packages/ + +[repo.tz_5.0_emulator_mirror] +url = http://10.113.136.32/download/public_mirror/tizen/5.0-unified/latest/repos/emulator/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +[repo.public_5.0_base_standard] +url = http://download.tizen.org/snapshots/tizen/5.0-base/latest/repos/standard/packages/ + +[repo.public_5.0_base_standard_mirror] +url = http://10.113.136.32/download/public_mirror/tizen/5.0-base/latest/repos/standard/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +############################################### +# +# Tizen v5.5 spin Wearable +# +[obs.spin_5.5] +url = http://10.113.136.201 + +[repo.wearable_product_5.5_armv7l] +url = http://165.213.149.200/download/snapshots/tizen/tizen-wearable-R800/latest/repos/standard/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +[repo.wearable_product_5.5_base] +url = http://165.213.149.200/download/snapshots/tizen/base-wearable/latest/repos/arm/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +############################################### +# +# Tizen v5.5 spin Wearable (armv7l) +# +[profile.tzwr_5.5_armv7l_spin] +obs = obs.spin +repos = repo.wearable_product_5.5_base, repo.wearable_product_5.5_armv7l +buildroot = ~/GBS-ROOT-5.0-WEARABLE-PRODUCT-ARMV7L + +############################################### +# +# Tizen v5.0 spin +# +[obs.spin] +url = http://10.113.136.204:81 + +[repo.tz_standard_armv7hl] +url = http://10.113.136.32/download/newlive/devel:/Toolchains:/Unified:/ref:/hardfp/standard +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +[repo.spin_5.0_base_armv7hl] +url = http://10.113.136.32/download/newlive/devel:/Toolchains:/Base:/ref:/hardfp/standard +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +############################################### +# +# Tizen v5.0 spin (armv7hl) +# +[profile.tz_5.0_standard_armv7hl] +obs = obs.spin +repos = repo.spin_5.0_base_armv7hl, repo.tz_standard_armv7hl +buildroot = ~/GBS-ROOT-5.0-STANDARD-ARMV7HL + +############################################### +# +# Tizen v5.0 public standard +# +[profile.tz_5.0_standard] +obs = obs.tizen +repos = repo.public_5.0_base_standard, repo.tz_5.0_standard +buildroot = ~/GBS-ROOT-5.0-STANDARD + +############################################### +# +# Tizen v5.0 public standard, Mirroring Server for HQ developers +# +[profile.tz_5.0_standard_mirror] +obs = obs.tizen +repos = repo.public_5.0_base_standard_mirror, repo.tz_5.0_standard_mirror +buildroot = ~/GBS-ROOT-5.0-STANDARD + +############################################### +# +# Tizen v5.0 public emulator +# +[profile.tz_5.0_emulator] +obs = obs.tizen +repos = repo.public_5.0_base_standard, repo.tz_5.0emulator +buildroot = ~/GBS-ROOT-5.0-EMULATOR + +############################################### +# +# Tizen v5.0 public emulator, Mirroring Server for HQ developers +# +[profile.tz_5.0_emulator_mirror] +obs = obs.tizen +repos = repo.public_5.0_base_standard, repo.tz_emulator_mirror +buildroot = ~/GBS-ROOT-5.0-EMULATOR + +############################################### +# +# Tizen product tv +# +[obs.tizen_product_tv] +url = https://168.219.243.64/api +user = obs_iewer +passwdx = obs_iewer_64 + +############################################# +# +# Tizen v5.5 for product tv (MuseM armv7l) +# +[profile.tztv_5.5_arm-musem] +obs = obs.tizen_product_tv +repos = repo.tv_product_5.5_base, repo.tv_product_5.5_musem +buildroot = ~/GBS-ROOT-5.5-TV-PRODUCT-MUSEM + +[repo.tv_product_5.5_base] +url = http://10.113.136.32/download_trbs/snapshots/tizen/5.5-vd-base/latest/repos/standard/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +[repo.tv_product_5.5_musem] +url = http://10.113.136.26/snapshots/VD/Tizen-5.5/MAIN2019-MuseM/latest/repos/MuseM/packages/ +user = blinkbot +passwdx = QlpoOTFBWSZTWd0JOhUAAACBAABgIAAhAIIjF3JFOFCQ3Qk6FQ== + +############################################# +# +# Tizen v5.0 for product tv (MuseM armv7l) +# +[profile.tztv_5.0_arm-musem] +obs = obs.tizen_product_tv +repos = repo.tv_product_5.0_musem, repo.tv_product_5.0_base +buildroot = ~/GBS-ROOT-5.0-TV-PRODUCT-MUSEM + +[repo.tv_product_5.0_base] +url = http://168.219.244.109/base/tizen-5.0-base-main2019/standard/latest/ + +[repo.tv_product_5.0_musem] +url = http://168.219.244.109/products/tv/archive/2019/MAIN2019/MuseM/latest/ + +############################################# +# +# Tizen v5.0 for product tv (KantM2 armv7l) +# +[profile.tztv_5.0_arm-kantm2] +obs = obs.tizen_product_tv +repos = repo.tv_product_5.0_kantm2, repo.tv_product_5.0_base +buildroot = ~/GBS-ROOT-5.0-TV-PRODUCT-KANTM2 + +[repo.tv_product_5.0_base] +url = http://168.219.244.109/base/tizen-5.0-base-main2019/standard/latest/ + +[repo.tv_product_5.0_kantm2] +url = http://168.219.244.109/products/tv/archive/2019/MAIN2019/KantM2_ATSC/latest/ + +############################################# +# +# Tizen v5.0 for product tv (KantM armv7l) +# +[profile.tztv_5.0_arm-kantm] +obs = obs.tizen_product_tv +repos = repo.tv_product_5.0_kantm, repo.tv_product_5.0_base +buildroot = ~/GBS-ROOT-5.0-TV-PRODUCT-KANTM + +[repo.tv_product_5.0_base] +url = http://168.219.244.109/base/tizen-5.0-base-main2019/standard/latest + +[repo.tv_product_5.0_kantm] +url = http://168.219.244.109/hijacks/PRECEDENCE/PRE_5.0MIGRATION-KantM/latest/ -- 2.7.4