support NPRuntime for smack
[framework/web/wrt-installer.git] / src / jobs / widget_install / task_manifest_file.cpp
index 47898ff..c61645b 100755 (executable)
@@ -118,6 +118,7 @@ TaskManifestFile::TaskManifestFile(InstallerContext &inCont) :
         AddStep(&TaskManifestFile::stepCopyLiveboxFiles);
         AddStep(&TaskManifestFile::stepCopyAccountIconFiles);
         AddStep(&TaskManifestFile::stepCreateExecFile);
+        AddStep(&TaskManifestFile::stepCreateLinkNPPluginsFile);
         AddStep(&TaskManifestFile::stepGenerateManifest);
         AddAbortStep(&TaskManifestFile::stepAbortIconFiles);
     } else {
@@ -125,6 +126,7 @@ TaskManifestFile::TaskManifestFile(InstallerContext &inCont) :
         AddStep(&TaskManifestFile::stepCopyLiveboxFiles);
         AddStep(&TaskManifestFile::stepCopyAccountIconFiles);
         AddStep(&TaskManifestFile::stepCreateExecFile);
+        AddStep(&TaskManifestFile::stepCreateLinkNPPluginsFile);
         AddStep(&TaskManifestFile::stepGenerateManifest);
     }
 }
@@ -206,6 +208,24 @@ void TaskManifestFile::stepCreateExecFile()
             "Widget execfile creation Finished");
 }
 
+void TaskManifestFile::stepCreateLinkNPPluginsFile()
+{
+    _D("stepCreateLinkNPPluginsFile");
+    if (0 == access(m_context.locations->getNPPluginsDir().c_str(), F_OK)) {
+        _D("This webapp has NPPlugins");
+        std::string pluginsExec = "/usr/bin/PluginProcess";
+        errno = 0;
+        if (symlink(pluginsExec.c_str(),
+                    m_context.locations->getNPPluginsExecFile().c_str()) != 0) {
+            int error = errno;
+            if (error) {
+                _E("Failed to create symbolic link for npplugins : %ls",
+                        DPL::GetErrnoString(error).c_str());
+            }
+        }
+    }
+}
+
 void TaskManifestFile::stepCopyIconFiles()
 {
     _D("CopyIconFiles");