[Release] wrt-installer_0.1.114
[framework/web/wrt-installer.git] / src / jobs / widget_install / task_database.cpp
index e9d1b6c..49020fc 100644 (file)
@@ -30,7 +30,6 @@
 #include <widget_install/widget_install_context.h>
 #include <web_provider_livebox_info.h>
 #include <dpl/wrt-dao-rw/widget_dao.h>
-#include <dpl/wrt-dao-ro/vconf_config.h>
 #include <dpl/foreach.h>
 #include <dpl/utils/wrt_utility.h>
 #include <dpl/log/log.h>
@@ -43,7 +42,6 @@
 #include <ace_registration.h>
 #include <errno.h>
 #include <string.h>
-#include <vconf.h>
 #include <map>
 
 using namespace WrtDB;
@@ -56,13 +54,14 @@ TaskDatabase::TaskDatabase(InstallerContext& context) :
     m_handleToRemove(INVALID_WIDGET_HANDLE),
     m_handle(INVALID_WIDGET_HANDLE)
 {
+    AddStep(&TaskDatabase::StartStep);
     AddStep(&TaskDatabase::StepRegisterExternalFiles);
     AddStep(&TaskDatabase::StepWrtDBInsert);
     AddStep(&TaskDatabase::StepAceDBInsert);
     AddStep(&TaskDatabase::StepSecurityOriginDBInsert);
     AddStep(&TaskDatabase::StepRemoveExternalFiles);
-    AddStep(&TaskDatabase::StepCreateVconf);
     AddStep(&TaskDatabase::StepLiveboxDBInsert);
+    AddStep(&TaskDatabase::EndStep);
 
     AddAbortStep(&TaskDatabase::StepAbortDBInsert);
     AddAbortStep(&TaskDatabase::StepAbortAceDBInsert);
@@ -76,7 +75,7 @@ void TaskDatabase::StepWrtDBInsert()
         time(&m_context.widgetConfig.installedTime);
 
         if (m_context.isUpdateMode) { //update
-            LogInfo("Registering widget... (update)");
+            LogDebug("Registering widget... (update)");
             Try
             {
                 m_handleToRemove = WidgetDAOReadOnly::getHandle(
@@ -95,31 +94,31 @@ void TaskDatabase::StepWrtDBInsert()
                          "Given tizenId not found for update installation");
             }
 
-            WidgetDAO::backupAndUpdateWidget(
-                m_backAppId,
-                m_context.widgetConfig.tzAppid,
-                m_context.widgetConfig,
-                m_context.wacSecurity);
-            m_handle = WidgetDAOReadOnly::getHandle(
-                    m_context.widgetConfig.tzAppid);
+            WidgetDAO::updateTizenAppId(m_context.widgetConfig.tzAppid,
+                                        m_backAppId);
+            WidgetDAO::registerWidget(m_context.widgetConfig.tzAppid,
+                                      m_context.widgetConfig,
+                                      m_context.widgetSecurity);
+            m_handle =
+                WidgetDAOReadOnly::getHandle(m_context.widgetConfig.tzAppid);
         } else { //new installation
-            LogInfo("Registering widget...");
+            LogDebug("Registering widget...");
             WidgetDAO::registerWidget(
                 m_context.widgetConfig.tzAppid,
                 m_context.widgetConfig,
-                m_context.wacSecurity);
+                m_context.widgetSecurity);
             m_handle = WidgetDAOReadOnly::getHandle(
                     m_context.widgetConfig.tzAppid);
         }
 
         FOREACH(cap, m_context.staticPermittedDevCaps) {
-            LogInfo(
+            LogDebug(
                 "staticPermittedDevCaps : " << cap->first
                                             << " smack status: " <<
                 cap->second);
         }
 
-        LogInfo("Widget registered");
+        LogDebug("Widget registered");
     }
     Catch(WidgetDAO::Exception::DatabaseError)
     {
@@ -147,7 +146,7 @@ void TaskDatabase::StepAceDBInsert()
     }
 
     if (!AceApi::registerAceWidget(m_handle, m_context.widgetConfig,
-                                   m_context.wacSecurity.getCertificateList()))
+                                   m_context.widgetSecurity.getCertificateList()))
     {
         LogError("ace database insert failed");
         ThrowMsg(Exceptions::UpdateFailed,
@@ -179,10 +178,6 @@ void TaskDatabase::StepSecurityOriginDBInsert()
             }
         }
     }
-
-    m_context.job->UpdateProgress(
-        InstallerContext::INSTALL_NEW_DB_INSERT,
-        "New Widget DB UPDATE Finished");
 }
 
 void TaskDatabase::StepRegisterExternalFiles()
@@ -249,51 +244,15 @@ void TaskDatabase::StepRemoveExternalFiles()
     }
 }
 
-void TaskDatabase::StepCreateVconf()
-{
-    LogDebug("StepCreateVconf");
-    std::map<std::string, WrtDB::SettingsType> vconfData;
-    vconfData[
-        WrtDB::VconfConfig::GetVconfKeyPopupUsage(
-            m_context.widgetConfig.tzAppid)] = WrtDB::SETTINGS_TYPE_ON;
-    vconfData[
-        WrtDB::VconfConfig::GetVconfKeyGeolocationUsage(
-            m_context.widgetConfig.tzAppid)] = WrtDB::SETTINGS_TYPE_ON;
-    vconfData[
-        WrtDB::VconfConfig::GetVconfKeyWebNotificationUsage(
-            m_context.widgetConfig.tzAppid)] = WrtDB::SETTINGS_TYPE_ON;
-    vconfData[
-        WrtDB::VconfConfig::GetVconfKeyWebDatabaseUsage(
-            m_context.widgetConfig.tzAppid)] = WrtDB::SETTINGS_TYPE_ON;
-    vconfData[
-        WrtDB::VconfConfig::GetVconfKeyMemorySavingMode(
-            m_context.widgetConfig.tzAppid)] = WrtDB::SETTINGS_TYPE_OFF;
-
-    // vconftool -g 5000 set -t int <path> initialize value
-    // Current installer should use vconftool for setting group ID
-    // In case of install application by pkgcmd, permission for others
-    // set to read-only
-    FOREACH(it, vconfData) {
-        std::ostringstream command;
-        command << "vconftool -g 5000 set -t int ";
-        command << (*it).first;
-        command << " \"" << static_cast<int>((*it).second) << "\"";
-        int ret = system(command.str().c_str());
-        if (-1 == ret) {
-            ThrowMsg(Exceptions::CreateVconfFailure,
-                     "Failed to create vconf files");
-        }
-    }
-}
-
 void TaskDatabase::StepAbortDBInsert()
 {
     LogWarning("[DB Update Task] Aborting... (DB Clean)");
     Try
     {
         if (m_context.isUpdateMode) {
-            WidgetDAO::restoreUpdateWidget(m_backAppId,
-                    m_context.widgetConfig.tzAppid);
+            WidgetDAO::unregisterWidget(m_context.widgetConfig.tzAppid);
+            WidgetDAO::updateTizenAppId(m_backAppId,
+                                        m_context.widgetConfig.tzAppid);
         } else {
             WidgetDAO::unregisterWidget(m_context.widgetConfig.tzAppid);
         }
@@ -342,22 +301,32 @@ void TaskDatabase::StepLiveboxDBInsert()
         } else {
             boxType = DPL::ToUTF8String((**it).m_type);
         }
-        LogInfo("livebox id: " << boxId);
-        LogInfo("livebox type: " << boxType);
+        LogDebug("livebox id: " << boxId);
+        LogDebug("livebox type: " << boxType);
 
         int autoLaunch = (**it).m_autoLaunch == L"true" ? 1 : 0;
-        LogInfo("livebox auto-launch: " << autoLaunch);
+        LogDebug("livebox auto-launch: " << autoLaunch);
 
         int mouseEvent = (**it).m_boxInfo.m_boxMouseEvent == L"true" ? 1 : 0;
-        LogInfo("livebox mouse-event: " << mouseEvent);
+        LogDebug("livebox mouse-event: " << mouseEvent);
 
         int pdFastOpen = (**it).m_boxInfo.m_pdFastOpen == L"true" ? 1 : 0;
-        LogInfo("livebox pd fast-open: " << pdFastOpen);
+        LogDebug("livebox pd fast-open: " << pdFastOpen);
 
         web_provider_livebox_insert_box_info(
                 boxId.c_str(), tizenId.c_str(), boxType.c_str(),
                 autoLaunch, mouseEvent, pdFastOpen);
     }
 }
+
+void TaskDatabase::StartStep()
+{
+    LogDebug("--------- <TaskDatabase> : START ----------");
+}
+
+void TaskDatabase::EndStep()
+{
+    LogDebug("--------- <TaskDatabase> : END ----------");
+}
 } //namespace WidgetInstall
 } //namespace Jobs