[Service] Refactor loading procedure for extension plugins 10/227410/4
authorYoungsoo Choi <kenshin.choi@samsung.com>
Mon, 9 Mar 2020 12:35:03 +0000 (05:35 -0700)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Fri, 13 Mar 2020 07:12:24 +0000 (00:12 -0700)
The plugins.json is copied to tizen-extensions-crosswalk-service
to be referred by extension loader.

Note that this doesn't include plugins.json for release product tv
to avoid conflicts with legacy wrt-service.

Change-Id: I63e4aba3028db3398e0451a37d61dd19007eb35b
Signed-off-by: Youngsoo Choi <kenshin.choi@samsung.com>
packaging/plugins.json [new file with mode: 0644]
packaging/wrtjs.spec
tizen/build/common.sh
wrt_app/common/extensions.json [deleted file]
wrt_app/common/wrt_xwalk_extension.js

diff --git a/packaging/plugins.json b/packaging/plugins.json
new file mode 100644 (file)
index 0000000..ba82e28
--- /dev/null
@@ -0,0 +1,52 @@
+[
+  {
+    "name":"tizen.filesystem",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_filesystem.so",
+    "entry_points": []
+  },
+  {
+    "name":"tizen.messageport",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_messageport.so",
+    "entry_points": []
+  },
+  {
+    "name":"tizen",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen.so",
+    "entry_points": []
+  },
+  {
+    "name":"tizen.datacontrol",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_datacontrol.so",
+    "entry_points": []
+  },
+  {
+    "name":"tizen.application",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_application.so",
+    "entry_points": ["tizen.ApplicationControl","tizen.ApplicationControlData"]
+  },
+  {
+    "name":"tizen.time",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_time.so",
+    "entry_points": ["tizen.TZDate","tizen.TimeDuration"]
+  },
+  {
+    "name":"xwalk",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_utils.so",
+    "entry_points": []
+  },
+  {
+    "name":"tizen.systeminfo",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_systeminfo.so",
+    "entry_points": []
+  },
+  {
+    "name":"tizen.package",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_package.so",
+    "entry_points": []
+  },
+  {
+    "name":"tizen.alarm",
+    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_alarm.so",
+    "entry_points": ["tizen.AlarmRelative","tizen.AlarmAbsolute"]
+  }
+]
index 9d24b2f14d203ee567ef6812f2b60a6c58ac12a2..1511dccf13a0435a7b805a64aa86998c3bcce526 100755 (executable)
@@ -7,6 +7,10 @@ License:    Apache-2.0
 URL:        https://www.tizen.org
 Source:     %{name}-%{version}.tar.gz
 
+%if "%{?profile}" != "tv" || "%{?_local_build}" == "1"
+%define crosswalk_extensions_service tizen-extensions-crosswalk-service
+%endif
+
 %if "%{?tizen_profile_name}" != "tv"
 BuildRequires: ninja
 BuildRequires: pkgconfig(dlog)
@@ -45,6 +49,10 @@ install -d %{buildroot}%{_resourcedir}
 %endif
 %endif
 %endif
+%if "%{?profile}" != "tv" || "%{?_local_build}" == "1"
+  mkdir -p %{buildroot}%{_libdir}/%{crosswalk_extensions_service}
+  cp packaging/plugins.json %{buildroot}%{_libdir}/%{crosswalk_extensions_service}
+%endif
 cp -r wrt_app/* %{buildroot}%{_resourcedir}/
 
 %post
@@ -65,4 +73,7 @@ rm -fr %{buildroot}
 %if "%{_vd_cfg_product_type}" != "LFD"
   %{_datadir}/aul/wrt.loader
 %endif
+%if "%{?profile}" != "tv" || "%{?_local_build}" == "1"
+  %{_libdir}/%{crosswalk_extensions_service}/plugins.json
+%endif
 %{_resourcedir}/*
index 806ed5db7a26e6177afc08f323b47405bae183ec..e3c313723a6b7a1e9dc3431fa51b06a03800558f 100755 (executable)
@@ -32,6 +32,7 @@ function setupAndExecuteTargetBuild() {
   local PROFILE
   local ARCHITECTURE
   local CONF_FLAG
+  local LOCAL_BUILD=1
   local -a ARGS
 
   # "|| :" means "or always succeeding built-in command"
@@ -39,9 +40,7 @@ function setupAndExecuteTargetBuild() {
   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*)
       PROFILE=tz_$(echo $1 | sed 's/--//g')
@@ -49,15 +48,22 @@ function setupAndExecuteTargetBuild() {
     --emulator*)
       PROFILE=tz_$(echo $1 | sed 's/--//g')
     ;;
+    --release)
+      LOCAL_BUILD=0
+    ;;
     --tizen*)
     ;;
     *)
-      ARGS[$count]="$1"
+      ARGS+=("$1")
     ;;
     esac
     shift;
   done
 
+  if [ "$LOCAL_BUILD" == "1" ]; then
+    ARGS+=(--define "_local_build 1")
+  fi
+
   if [ "$PROFILE" == "" ]; then
     if [[ $platform == "tv" ]]; then
       PROFILE=tztv_6.0_arm-nikem
diff --git a/wrt_app/common/extensions.json b/wrt_app/common/extensions.json
deleted file mode 100644 (file)
index ba82e28..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-[
-  {
-    "name":"tizen.filesystem",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_filesystem.so",
-    "entry_points": []
-  },
-  {
-    "name":"tizen.messageport",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_messageport.so",
-    "entry_points": []
-  },
-  {
-    "name":"tizen",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen.so",
-    "entry_points": []
-  },
-  {
-    "name":"tizen.datacontrol",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_datacontrol.so",
-    "entry_points": []
-  },
-  {
-    "name":"tizen.application",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_application.so",
-    "entry_points": ["tizen.ApplicationControl","tizen.ApplicationControlData"]
-  },
-  {
-    "name":"tizen.time",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_time.so",
-    "entry_points": ["tizen.TZDate","tizen.TimeDuration"]
-  },
-  {
-    "name":"xwalk",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_utils.so",
-    "entry_points": []
-  },
-  {
-    "name":"tizen.systeminfo",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_systeminfo.so",
-    "entry_points": []
-  },
-  {
-    "name":"tizen.package",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_package.so",
-    "entry_points": []
-  },
-  {
-    "name":"tizen.alarm",
-    "lib":"/usr/lib/tizen-extensions-crosswalk/libtizen_alarm.so",
-    "entry_points": ["tizen.AlarmRelative","tizen.AlarmAbsolute"]
-  }
-]
index 86a6575af7d6fe29863507105e14b4de218179a5..d04b65fef9c769f18e083ac9091ffd4c339221a1 100644 (file)
@@ -21,18 +21,12 @@ var extensions_ = {};
 
 class XWalkExtension {
   constructor() {
-    let plugins = require('./extensions.json');
-
     const binding = process.wrtBinding('wrt_xwalk_extension')
     var extensions = binding.getExtensions();
     for (var i = 0; i < extensions.length; i++) {
       extensions[i].loaded = false;
-      for (var idx in plugins) {
-        if (extensions[i].name === plugins[idx].name) {
-          console.log("Load extension : " + extensions[i].name);
-          extensions_[extensions[i].name] = extensions[i];
-        }
-      }
+      console.log("Load extension : " + extensions[i].name);
+      extensions_[extensions[i].name] = extensions[i];
     }
     for (var name in extensions_) {
       if (!extensions_[name].use_trampoline) {