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()
return false;
}
- // Create dao
WrtDB::DbWidgetFeatureSet features;
Try
{
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");