Upstream version 8.37.186.0
[platform/framework/web/crosswalk.git] / src / xwalk / application / common / installer / package_installer_tizen.cc
index 259c1e9..f5ab941 100644 (file)
 #include "third_party/libxml/chromium/libxml_utils.h"
 #include "xwalk/application/common/application_data.h"
 #include "xwalk/application/common/application_manifest_constants.h"
+#include "xwalk/application/common/manifest_handlers/tizen_application_handler.h"
 #include "xwalk/application/common/manifest_handlers/tizen_metadata_handler.h"
 #include "xwalk/application/common/application_storage.h"
 #include "xwalk/application/common/installer/tizen/packageinfo_constants.h"
+#include "xwalk/application/common/id_util.h"
 #include "xwalk/runtime/common/xwalk_paths.h"
 
 namespace info = xwalk::application_packageinfo_constants;
@@ -88,10 +90,11 @@ bool GeneratePkgInfoXml(xwalk::application::ApplicationData* application,
       !base::CreateDirectory(app_dir))
     return false;
 
-  std::string package_id = application->ID();
-  std::string tizen_app_id = kAppIdPrefix + package_id;
+  std::string package_id =
+      xwalk::application::GetPackageIdFromAppId(application->ID());
+
   base::FilePath execute_path =
-      app_dir.AppendASCII("bin/").AppendASCII(tizen_app_id);
+      app_dir.AppendASCII("bin/").AppendASCII(application->ID());
   std::string stripped_name = application->Name();
 
   FILE* file = base::OpenFile(xml_path, "w");
@@ -101,14 +104,15 @@ bool GeneratePkgInfoXml(xwalk::application::ApplicationData* application,
   xml_writer.StartElement("manifest");
   xml_writer.AddAttribute("xmlns", "http://tizen.org/ns/packages");
   xml_writer.AddAttribute("package", package_id);
+  xml_writer.AddAttribute("type", "wgt");
   xml_writer.AddAttribute("version", application->VersionString());
   xml_writer.WriteElement("label", application->Name());
   xml_writer.WriteElement("description", application->Description());
 
   xml_writer.StartElement("ui-application");
-  xml_writer.AddAttribute("appid", tizen_app_id);
+  xml_writer.AddAttribute("appid", application->ID());
   xml_writer.AddAttribute("exec", execute_path.MaybeAsASCII());
-  xml_writer.AddAttribute("type", "c++app");
+  xml_writer.AddAttribute("type", "webapp");
   xml_writer.AddAttribute("taskmanage", "true");
   xml_writer.WriteElement("label", application->Name());
 
@@ -138,9 +142,9 @@ bool GeneratePkgInfoXml(xwalk::application::ApplicationData* application,
 }
 
 bool CreateAppSymbolicLink(const base::FilePath& app_dir,
-                           const std::string& tizen_app_id) {
+                           const std::string& app_id) {
   base::FilePath execute_path =
-      app_dir.AppendASCII("bin/").AppendASCII(tizen_app_id);
+      app_dir.AppendASCII("bin/").AppendASCII(app_id);
 
   if (!base::CreateDirectory(execute_path.DirName())) {
     LOG(ERROR) << "Could not create directory '"
@@ -170,7 +174,6 @@ bool PackageInstallerTizen::PlatformInstall(ApplicationData* app_data) {
   base::FilePath data_dir;
   CHECK(PathService::Get(xwalk::DIR_DATA_PATH, &data_dir));
 
-  std::string tizen_app_id = kAppIdPrefix + app_id;
   base::FilePath app_dir =
       data_dir.AppendASCII(info::kAppDir).AppendASCII(app_id);
   base::FilePath xml_path = data_dir.AppendASCII(info::kAppDir).AppendASCII(
@@ -189,7 +192,7 @@ bool PackageInstallerTizen::PlatformInstall(ApplicationData* app_data) {
     return false;
   }
 
-  if (!CreateAppSymbolicLink(app_dir, tizen_app_id)) {
+  if (!CreateAppSymbolicLink(app_dir, app_id)) {
     LOG(ERROR) << "Failed to create symbolic link for " << app_id;
     return false;
   }
@@ -268,7 +271,6 @@ bool PackageInstallerTizen::PlatformUpdate(ApplicationData* app_data) {
   base::FilePath data_dir;
   CHECK(PathService::Get(xwalk::DIR_DATA_PATH, &data_dir));
 
-  std::string tizen_app_id = kAppIdPrefix + app_id;
   base::FilePath app_dir =
       data_dir.AppendASCII(info::kAppDir).AppendASCII(app_id);
   base::FilePath new_xml_path = data_dir.AppendASCII(info::kAppDir).AppendASCII(
@@ -288,7 +290,7 @@ bool PackageInstallerTizen::PlatformUpdate(ApplicationData* app_data) {
     return false;
   }
 
-  if (!CreateAppSymbolicLink(app_dir, tizen_app_id))
+  if (!CreateAppSymbolicLink(app_dir, app_id))
     return false;
 
   base::FilePath icon =