[WRTjs][Service] Remove the built-in service 59/324759/2
authorChunling Ye <chunling.ye@samsung.com>
Mon, 26 May 2025 03:04:25 +0000 (11:04 +0800)
committerye chuanling <chunling.ye@samsung.com>
Mon, 26 May 2025 03:25:21 +0000 (03:25 +0000)
wrt related patch:
https://review.tizen.org/gerrit/c/platform/framework/web/chromium-efl/+/324760

Change-Id: I307168a0d1930a92f2872f0f47674e6d5624de5f
Signed-off-by: Chunling Ye <chunling.ye@samsung.com>
wrt_app/service/builtins/appmanifest_loader.ts [deleted file]
wrt_app/service/builtins/wasm_builder.ts [deleted file]
wrt_app/service/main.ts
wrt_app/service/service_manager.ts
wrt_app/webpack.config.js

diff --git a/wrt_app/service/builtins/appmanifest_loader.ts b/wrt_app/service/builtins/appmanifest_loader.ts
deleted file mode 100644 (file)
index 40bd03b..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-import '../../common/init';
-import { isMainThread, workerData } from 'worker_threads';
-import { wrt } from '../../browser/wrt';
-import { URL } from 'url';
-import * as fs from 'fs';
-import * as https from 'https';
-import * as XWalkExtension from '../../common/wrt_xwalk_extension';
-
-function getManifestFile(manifestUrl: string) {
-  console.debug('manifestUrl : '+manifestUrl);
-  return new Promise((resolve, reject) => {
-    const req = https.request(manifestUrl, (res) => {
-      res.setEncoding('utf8');
-      let responseBody = '';
-      res.on('data', (data) => {
-        responseBody += data;
-      });
-      res.on('end', () => {
-        resolve(JSON.parse(responseBody));
-      });
-    }).on('error', (err) => {
-      console.debug(`error : ${err}`);
-      reject(err);
-    });
-    req.end();
-  });
-}
-
-async function downloadIcon(iconSrc: string, iconFile: string) {
-  console.debug('iconSrc : ' + iconSrc);
-  return new Promise((resolve, reject) => {
-    const req = https.request(iconSrc, (res) => {
-      const Stream = require('stream').Transform;
-      let data = new Stream();
-      res.on('data', (chunk) => {
-        data.push(chunk);
-      });
-      res.on('end', () => {
-        fs.writeFileSync(iconFile, data.read());
-        resolve('done');
-      });
-    }).on('error', (err) => {
-      console.debug(`error : ${err}`);
-      reject(err);
-    });
-    req.end();
-  });
-}
-
-function makeFileSync(file: string, data: string) {
-  fs.writeFileSync(file, data);
-}
-
-function concatWithBaseUrl(path: string, baseUrl: string) {
-  if (path.substr(0, 1) === '/') {
-    const url = new URL(path, baseUrl);
-    return url.toString();
-  } else if (path.indexOf('http:') == -1 && path.indexOf('https:') == -1) {
-    return baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1) + path;
-  }
-  return path;
-}
-
-let baseWorkingDir = '/home/owner/content/Downloads/AppManifest';
-let downloadVirtualDir = 'downloads/AppManifest';
-let iconFile: string = '';
-let iconName: string = '';
-let manifestFile: string = '';
-let convertedConfigXml: string = '';
-let refCount: number = 0;
-
-function getAppName(appName: string) {
-  appName = appName.replace(/ /g, '');
-  console.debug('appName : ' + appName);
-  return appName;
-}
-
-function makeWorkingFolder(appName: string) {
-  let workingDir = `${baseWorkingDir}/${appName}`;
-  fs.rmdirSync(workingDir, { recursive: true });
-  fs.mkdir(workingDir, { recursive: true }, (err) => {
-    if (err)
-      console.debug(`mkdir error : ${err}`)
-  });
-}
-
-async function handleIcon(appName: string, manifestUrl: string, manifest: any) {
-  let lengthOfIcons = manifest['icons'].length;
-  let lastIcon = manifest['icons'][lengthOfIcons - 1];
-  let iconSrc = concatWithBaseUrl(lastIcon['src'], manifestUrl);
-  iconName = iconSrc.substr(iconSrc.lastIndexOf('/') + 1);
-  iconFile = `${baseWorkingDir}/${appName}/${iconName}`;
-  await downloadIcon(iconSrc, iconFile);
-  iconFile = `${downloadVirtualDir}/${appName}/${iconName}`;
-  refCount++;
-}
-
-function makeManifestFile(appName: string, manifest: any) {
-  manifestFile = `${baseWorkingDir}/${appName}/appmanifest.json`;
-  makeFileSync(manifestFile, JSON.stringify(manifest));
-  manifestFile = `${downloadVirtualDir}/${appName}/appmanifest.json`;
-  refCount++;
-}
-
-function makePkgId(startUrl: string) {
-  let id = Buffer.from(startUrl).toString('base64');
-  id = id.replace(/=/gi, '');
-  console.debug(`id : ${id}`);
-  return id.substr(-10);
-}
-
-function convertConfigXml(appName: string, startUrl: string) {
-  convertedConfigXml = `${baseWorkingDir}/${appName}/config.xml`;
-  let id = makePkgId(startUrl);
-  let configXml = `<?xml version='1.0' encoding='UTF-8'?>`;
-  configXml += `<widget xmlns='http://www.w3.org/ns/widgets' xmlns:tizen='http://tizen.org/ns/widgets' id='http://yourdomain/AppManifest' version='1.0.0' viewmodes='maximized'>`;
-  configXml += `<tizen:application id='${id}.${appName}' package='${id}' required_version='3.0' />`;
-  configXml += `<content src='${startUrl}' />`
-  configXml += `<icon src='${iconName}' />`;
-  configXml += `<name>${appName}</name>`;
-  configXml += `<access origin='*' subdomains='true' />`;
-  configXml += `</widget>`;
-  makeFileSync(convertedConfigXml, configXml);
-  convertedConfigXml = `${downloadVirtualDir}/${appName}/config.xml`;
-  refCount++;
-}
-
-function cleanUpAndQuit(appName: string) {
-  let workingDir = `${baseWorkingDir}/${appName}`;
-  fs.rmdirSync(workingDir, { recursive: true });
-  process.exit();
-}
-
-function installWgt(appName: string) {
-  let wgtPath = `${baseWorkingDir}/${appName}/${appName}.wgt`;
-  let installinfo = "{\"app_id\":\"" + appName + "\",\"pkg_path\":\"" + wgtPath + "\"}";
-  console.debug(`installWgt info: ${installinfo}`);
-  (wrt.tv as any).notifyInstall(installinfo);
-  process.exit();
-}
-
-function makeWgt(appName: string) {
-  let wgtPath = `${downloadVirtualDir}/${appName}/${appName}.wgt`;
-  let onArchive = (archive: any) => {
-    function progressCallback(opId: string, val: number, name: any) {
-      console.debug('opId: ' + opId + ' with progress val: ' + (val * 100).toFixed(0) + '%');
-    }
-    function successCallback() {
-      console.debug(`File added : ${refCount}`);
-      refCount--;
-      if (!refCount) {
-        installWgt(appName);
-      }
-    }
-    console.debug(`convertedConfigXml : ${convertedConfigXml}`);
-    console.debug(`manifestFile : ${manifestFile}`);
-    console.debug(`iconFile : ${iconFile}`);
-    let defaultArchiveFileEntryOption = { destination:'', stripSourceDirectory: true};
-    archive.add(convertedConfigXml, successCallback, null, progressCallback, defaultArchiveFileEntryOption);
-    archive.add(manifestFile, successCallback, null, progressCallback, defaultArchiveFileEntryOption);
-    if (iconFile)
-      archive.add(iconFile, successCallback, null, progressCallback, defaultArchiveFileEntryOption);
-  }
-  global.tizen.archive.open(wgtPath, 'w', onArchive, () => { }, { overwrite: true });
-}
-
-async function parseAndHandleManifest(manifestUrl: string) {
-  let manifest: any = await getManifestFile(manifestUrl);
-  let appName = getAppName(manifest['name']);
-  try {
-    makeWorkingFolder(appName);
-    if (manifest['icons']) {
-      await handleIcon(appName, manifestUrl, manifest);
-    }
-    if (manifest['start_url']) {
-      let startUrl = concatWithBaseUrl(manifest['start_url'], manifestUrl);
-      manifest['start_url'] = startUrl;
-
-      makeManifestFile(appName, manifest);
-      convertConfigXml(appName, startUrl);
-    }
-    makeWgt(appName);
-  } catch (e) {
-    console.debug(`Exception: ${e}`);
-    cleanUpAndQuit(appName);
-  }
-}
-
-export function run(manifestUrl: string) {
-  console.debug(`Appmanifest parser starts for ${manifestUrl}`);
-  setInterval(() => { }, 500);
-  wrt.tv?.delayShutdown();
-  XWalkExtension.initialize();
-  parseAndHandleManifest(manifestUrl);
-}
-
-if (!isMainThread) {
-  run(decodeURIComponent(workerData.id));
-}
diff --git a/wrt_app/service/builtins/wasm_builder.ts b/wrt_app/service/builtins/wasm_builder.ts
deleted file mode 100644 (file)
index 3ec7fe8..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-import '../../common/init';
-import { isMainThread, workerData } from 'worker_threads';
-import { wrt } from '../../browser/wrt';
-import * as fs from 'fs';
-
-function compileWasmForCaching(files: string[]) {
-  try {
-    files.forEach(async filePath => {
-      console.debug(`Requesting WASM compilation for building a cache, file_path:(${filePath})`);
-      let source = fs.readFileSync(filePath);
-      let file = new Uint8Array(source);
-      await WebAssembly.compileForCaching(file);
-    });
-  } catch (e) {
-    console.error(`An error occurred while compiling a wasm module. error:(${e})`);
-  }
-}
-
-export function run(appId: string) {
-  console.debug(`wasm_builder.js starts, app_id:(${appId})`);
-  let tv = wrt.tv as NativeWRTjs.TVExtension;
-  tv.setWasmFlags();
-  tv.setDiskCache(appId);
-  let files = tv.getWasmFiles(appId);
-  console.debug(files);
-  tv.delayShutdown();
-  compileWasmForCaching(files);
-  process.exit();
-}
-
-if (!isMainThread) {
-  run(workerData.id);
-}
index e1ff2430cf8d66bac4f6d3fef0e507c6b5db6aea..bf2d1533c23ff79646f0c2e0de390956cd725554 100755 (executable)
@@ -30,11 +30,6 @@ wrt.on('stop-service', (event: any, internalId: string) => {
   ServiceManager.stopService(internalId);
 });
 
-wrt.on('builtin-service', (event: any, internalId: string, serviceName: string) => {
-  console.debug(`id: ${internalId}, serviceName: ${serviceName}`);
-  ServiceManager.handleBuiltinService(internalId, serviceName);
-});
-
 wrt.on('message', (event: any, type: string, data: string) => {
   console.debug(`onMessage : ${type} - ${data}`);
   ServiceManager.notifyMessage(type, data);
index c74728e6b755fd62f4c2293438c5bdaf804f8111..5c72e5bfc5a3d2cdc6bd98b2d275cfa50a7704f6 100644 (file)
@@ -159,21 +159,6 @@ export function stopService(id: string) {
   terminateWorker(id, 500);
 }
 
-export function handleBuiltinService(serviceId: string, serviceName: string) {
-  if (!serviceName) {
-    return;
-  }
-  let need_stop = (serviceName.substr(0, 5) === 'stop_');
-  if (need_stop) {
-    console.debug(`${serviceName} will be terminated.`);
-    workers[serviceId].terminate();
-  } else {
-    console.debug(`Builtin service is ${serviceName}`);
-    let startService = `${__dirname}/../service/builtins/${serviceName}.js`;
-    createWorker(serviceId, startService, '');
-  }
-}
-
 export function notifyMessage(listener: string, data: string) {
   for (const id in messageObservers) {
     if (messageObservers[id].has(listener)) {
index feb07bedb70375f8855688c9ecc0b24112dfd221..6978719646656d86e98abb41b908110c37ac91bc 100644 (file)
@@ -16,8 +16,6 @@ module.exports = {
     'addon/renderer/addonapi': path.resolve(__dirname, 'addon', 'renderer', 'addonapi.ts'),
     'browser/init': path.resolve(__dirname, 'browser', 'init.ts'),
     'renderer/init': path.resolve(__dirname, 'renderer', 'init.ts'),
-    'service/builtins/appmanifest_loader': path.resolve(__dirname, 'service', 'builtins', 'appmanifest_loader.ts'),
-    'service/builtins/wasm_builder': path.resolve(__dirname, 'service', 'builtins', 'wasm_builder.ts'),
     'service/main': path.resolve(__dirname, 'service', 'main.ts'),
     'service/service_runner': path.resolve(__dirname, 'service', 'service_runner.ts'),
     'src/runtime': path.resolve(__dirname, 'src', 'runtime.ts')