Replace pkg_path with GetPkgPath() method in InstallerContext
[platform/core/appfw/wgt-backend.git] / src / wgt / step / pkgmgr / step_generate_xml.cc
index 370d403..64a2303 100644 (file)
@@ -165,7 +165,7 @@ common_installer::Step::Status StepGenerateXml::GenerateApplicationCommonXml(
   xmlTextWriterWriteAttribute(writer, BAD_CAST "appid", BAD_CAST app->appid);
 
   // binary is a symbolic link named <appid> and is located in <pkgid>/<appid>
-  bf::path exec_path = context_->pkg_path.get()
+  bf::path exec_path = context_->GetPkgPath()
       / bf::path("bin") / bf::path(app->appid);
   xmlTextWriterWriteAttribute(writer, BAD_CAST "exec",
                               BAD_CAST exec_path.string().c_str());
@@ -189,7 +189,7 @@ common_installer::Step::Status StepGenerateXml::GenerateApplicationCommonXml(
     if (!WriteWidgetApplicationAttributesAndElements(writer, app,
         static_cast<WgtBackendData*>(
             context_->backend_data.get())->appwidgets.get(),
-        context_->pkg_path.get() / "shared" / "res"))
+        context_->GetPkgPath() / "shared" / "res"))
       return Status::MANIFEST_ERROR;
     break;
   case AppCompType::WATCHAPP:
@@ -386,11 +386,12 @@ common_installer::Step::Status StepGenerateXml::GenerateManifestElement(
     return status;
   }
   GeneratePrivilege(writer);
+  GenerateProvidesAppDefinedPrivilege(writer);
   GenerateAccount(writer);
   GenerateIme(writer);
   GenerateProfiles(writer);
   GenerateShortcuts(writer);
-
+  GenerateTrustAnchor(writer);
   xmlTextWriterEndElement(writer);
   return Status::OK;
 }
@@ -505,7 +506,37 @@ void StepGenerateXml::GeneratePrivilege(xmlTextWriterPtr writer) {
       xmlTextWriterWriteString(writer, BAD_CAST priv->value);
       xmlTextWriterEndElement(writer);
     }
+    if (context_->manifest_data.get()->appdefined_privileges) {
+      for (appdefined_privilege_x* priv : GListRange<appdefined_privilege_x*>(
+           context_->manifest_data.get()->appdefined_privileges)) {
+        xmlTextWriterStartElement(writer, BAD_CAST "appdefined-privilege");
+        xmlTextWriterWriteAttribute(writer, BAD_CAST "license",
+                                    BAD_CAST priv->license);
+        xmlTextWriterWriteAttribute(writer, BAD_CAST "type",
+                                    BAD_CAST priv->type);
+        xmlTextWriterWriteString(writer, BAD_CAST priv->value);
+        xmlTextWriterEndElement(writer);
+      }
+    }
+    xmlTextWriterEndElement(writer);
+  }
+}
 
+void StepGenerateXml::GenerateProvidesAppDefinedPrivilege(
+    xmlTextWriterPtr writer) {
+  if (context_->manifest_data.get()->provides_appdefined_privileges) {
+    xmlTextWriterStartElement(writer,
+                              BAD_CAST "provides-appdefined-privileges");
+    for (appdefined_privilege_x* priv : GListRange<appdefined_privilege_x*>(
+         context_->manifest_data.get()->provides_appdefined_privileges)) {
+      xmlTextWriterStartElement(writer, BAD_CAST "appdefined-privilege");
+      xmlTextWriterWriteAttribute(writer, BAD_CAST "license",
+                                  BAD_CAST priv->license);
+      xmlTextWriterWriteAttribute(writer, BAD_CAST "type",
+                                  BAD_CAST priv->type);
+      xmlTextWriterWriteString(writer, BAD_CAST priv->value);
+      xmlTextWriterEndElement(writer);
+    }
     xmlTextWriterEndElement(writer);
   }
 }
@@ -620,10 +651,10 @@ void StepGenerateXml::GenerateShortcuts(xmlTextWriterPtr writer) {
       if (!shortcut.app_id.empty())
         xmlTextWriterWriteAttribute(writer, BAD_CAST "appid",
                                     BAD_CAST shortcut.app_id.c_str());
-      if (!shortcut.app_id.empty())
+      if (!shortcut.extra_data.empty())
         xmlTextWriterWriteAttribute(writer, BAD_CAST "extra_data",
                                     BAD_CAST shortcut.extra_data.c_str());
-      if (!shortcut.app_id.empty())
+      if (!shortcut.extra_key.empty())
         xmlTextWriterWriteAttribute(writer, BAD_CAST "extra_key",
                                     BAD_CAST shortcut.extra_key.c_str());
       if (!shortcut.icon.empty()) {
@@ -645,5 +676,16 @@ void StepGenerateXml::GenerateShortcuts(xmlTextWriterPtr writer) {
   }
 }
 
+void StepGenerateXml::GenerateTrustAnchor(xmlTextWriterPtr writer) {
+  if (!context_->manifest_data.get()->use_system_certs)
+    return;
+
+  xmlTextWriterStartElement(writer, BAD_CAST "trust-anchor");
+  xmlTextWriterWriteAttribute(writer, BAD_CAST "use-system-certs",
+      BAD_CAST context_->manifest_data.get()->use_system_certs);
+
+  xmlTextWriterEndElement(writer);
+}
+
 }  // namespace pkgmgr
 }  // namespace wgt