X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmodules%2Ftizen%2FPluginManager%2FPluginManager.cpp;h=27af1febb581faad349cea66bfa41bac11c3b75b;hb=da854ef348cf918993a95adeeffa616db2dca6f7;hp=53dae9406b4cdf5255e8a4e906648cec885df22d;hpb=9c61c076f198660f9d9683fc1f091cbc95b3286b;p=framework%2Fweb%2Fwrt-plugins-common.git diff --git a/src/modules/tizen/PluginManager/PluginManager.cpp b/src/modules/tizen/PluginManager/PluginManager.cpp index 53dae94..27af1fe 100644 --- a/src/modules/tizen/PluginManager/PluginManager.cpp +++ b/src/modules/tizen/PluginManager/PluginManager.cpp @@ -46,13 +46,16 @@ namespace PluginManager { PluginManager::PluginManager(int widgetHandle, const string &objectUri, + JSObjectRef object, JSContextRef context) : m_widgetHandle(widgetHandle), m_objectUri(GLOBAL_OBJECT_NAME), + m_shortUri(objectUri), + m_objectInstance(object), m_context(context) { m_objectUri.append(SEPARATOR).append(objectUri); - WrtDB::WrtDatabase::attachToThread(); + WrtDB::WrtDatabase::attachToThreadRO(); } PluginManager::~PluginManager() @@ -84,7 +87,6 @@ bool PluginManager::loadChild(const string &name) const return false; } - // Create dao WrtDB::DbWidgetFeatureSet features; Try { @@ -99,10 +101,22 @@ bool PluginManager::loadChild(const string &name) const return false; } - FOREACH (it, features) { - if (it->pluginId == handle) { - PluginLogicSingleton::Instance().addSpecialFeatureToSession(*it); - return true; + //check does plugin with feature was requested + FOREACH (it, features) + { + if (it->pluginId == handle) + { + if(it->rejected) + { + LogWarning("Feature rejected by ACE"); + continue; + } + + PluginLogic::JavaScriptObject jsObject = {m_objectInstance, + m_shortUri}; + + return PluginLogicSingleton::Instance().loadPluginOnDemand( + handle, jsObject); } } LogError("Plugin not loaded");