+wrt-plugins-common (0.3.76) unstable; urgency=low
+
+ * Modification the root plugins register function
+ * Prevent issue fix
+
+ -- Jihoon Chung <jihoon.chung@samsung.com> Tue, 26 Mar 2013 17:40:02 +0900
+
wrt-plugins-common (0.3.75) unstable; urgency=low
* Update unmerged source code
-#git:framework/web/wrt-plugins-common wrt-plugins-common_0.3.75
+#git:framework/web/wrt-plugins-common wrt-plugins-common_0.3.76
Name: wrt-plugins-common
Summary: wrt-plugins common library
-Version: 0.3.75
+Version: 0.3.76
Release: 1
Group: Development/Libraries
License: Apache License, Version 2.0
namespace {
const char *LIBRARY_PATH_SEPARATOR = "/";
-const char *TIZEN_ROOT_FEATURES = "http://tizen.org/privilege/tizen";
}
class JSPageSession::Impl
void loadInjectedJavaScript();
void installStandardFeatures();
- void installRootFeatures();
+ void installRootPlugins();
void installRequestedFeatures();
//returns true if success or false if failed
LogInfo("Standard widget features installed.");
}
-void JSPageSession::Impl::installRootFeatures()
+void JSPageSession::Impl::installRootPlugins()
{
- LogInfo("Installing requested widget features...");
- WrtDB::FeatureDAOReadOnly dao(TIZEN_ROOT_FEATURES);
- auto plugin = m_pluginsSupport->getPluginModelById(dao.GetPluginHandle());
- installPlugin(plugin);
- LogInfo("requested root feature installed.");
+ LogInfo("Installing requested root plugins...");
+
+ PluginContainerSupport::PluginsList rootPlugins =
+ m_pluginsSupport->getRootPlugins();
+ FOREACH(it, rootPlugins)
+ {
+ installPlugin(*it);
+ }
+
+ LogInfo("requested root plugins installed.");
}
bool JSPageSession::Impl::installPlugin(PluginModelPtr plugin)
WidgetDAOReadOnly dao(m_widgetHandle);
WidgetType appType = dao.getWidgetType();
if (appType == WrtDB::APP_TYPE_TIZENWEBAPP) {
- installRootFeatures();
+ installRootPlugins();
}
// Register special features
installRequestedFeatures();
namespace {
const char *STANDARD_FEATURES_LIST_FILE = "standard-features-list";
-const char *TIZEN_ROOT_FEATURES = "http://tizen.org/privilege/tizen";
}
using namespace WrtDB;
{
// Reading standard features list from file
readStandardFeaturesList();
+
+ // Reading root plugins list from so files
+ readRootPluginsList();
}
PluginContainerSupport::~PluginContainerSupport()
WidgetDAOReadOnly dao(widgetHandle);
WidgetType appType = dao.getWidgetType();
if (appType == WrtDB::APP_TYPE_TIZENWEBAPP) {
- WrtDB::FeatureDAOReadOnly dao(TIZEN_ROOT_FEATURES);
- registerPluginModel(dao.GetPluginHandle());
+ FOREACH(it_rootPluginHandle, m_rootPluginsList)
+ {
+ LogDebug("*it_rootPluginHandle: " << *it_rootPluginHandle);
+ registerPluginModel(*it_rootPluginHandle);
+ }
} else {
LogDebug("Not defined app type");
}
standardFeatureFile.close();
}
+void PluginContainerSupport::readRootPluginsList()
+{
+ LogDebug("Reading root plugins list from so files...");
+
+ PluginHandleList pluginHandleList =
+ PluginDAOReadOnly::getPluginHandleList();
+
+ FOREACH(it_pluginHandle, pluginHandleList)
+ {
+ PluginDAOReadOnly pluginDao(*it_pluginHandle);
+ PluginHandleSetPtr retDependencies;
+ retDependencies = pluginDao.getLibraryDependencies();
+ if (retDependencies->empty()) {
+ LogDebug("Root plugin Handle: " << *it_pluginHandle);
+ m_rootPluginsList.push_back(*it_pluginHandle);
+ }
+ }
+}
+
FeatureModelPtr
PluginContainerSupport::getFeatureModel(const std::string &name) const
{
}
PluginContainerSupport::PluginsList
+PluginContainerSupport::getRootPlugins() const
+{
+ PluginsList plugins;
+
+ FOREACH(it, m_rootPluginsList)
+ {
+ PluginModelPtr plugin = getPluginModelById(*it);
+ if (!plugin) {
+ LogError("PluginModel not found");
+ continue;
+ }
+
+ plugins.push_back(plugin);
+ }
+
+ return plugins;
+}
+
+PluginContainerSupport::PluginsList
PluginContainerSupport::getPluginsList() const
{
LogDebug("");
StandardFeatureList m_standardFeatureList;
+ WrtDB::PluginHandleList m_rootPluginsList;
+
PluginModelsContainer m_pluginModels;
FeatureModelContainer m_featureModels;
private:
// Reading
void readStandardFeaturesList();
+ void readRootPluginsList();
// Plugin models
typedef std::multimap<WrtDB::FeatureHandle, std::string> DeviceCapList;
void readRootPlugins(int widgetHandle);
FeaturesList getStandardFeatures() const;
PluginsList getStandardPlugins() const;
+ PluginsList getRootPlugins() const;
PluginsList getPluginsList() const;
PluginModelPtr getPluginForFeature(const std::string& featureName);
#include <dpl/waitable_handle.h>
#include <dpl/binary_queue.h>
#include <dpl/serialization.h>
+#include <dpl/exception.h>
#include <unistd.h>
#include <stdlib.h>
#include "PopupEnum.h"
namespace Wrt {
namespace Popup {
-PopupInvoker::PopupInvoker() :
- m_inputName(tmpnam_r(NULL)),
- m_outputName(tmpnam_r(NULL))
+PopupInvoker::PopupInvoker()
{
- Try
- {
- m_input.Create(m_inputName);
- m_output.Create(m_outputName);
- LogDebug("Pipes created");
- }
- Catch(DPL::Exception)
- {
- LogError("Cannot create pipes");
- }
+ char tmp[L_tmpnam + 1];
+ if (NULL == tmpnam(tmp))
+ ThrowMsg(DPL::Exception, "Failed to get pipe name");
+ m_inputName = tmp;
+
+ if (NULL == tmpnam(tmp))
+ ThrowMsg(DPL::Exception, "Failed to get pipe name");
+ m_outputName = tmp;
+
+ m_input.Create(m_inputName);
+ m_output.Create(m_outputName);
+ LogDebug("Pipes created");
}
PopupInvoker::~PopupInvoker()
DPL::NamedInputPipe m_input;
DPL::NamedOutputPipe m_output;
- const std::string m_inputName;
- const std::string m_outputName;
+ std::string m_inputName;
+ std::string m_outputName;
};
} // Popup
} // Wrt