Update change log and spec for wrt-plugins-tizen_0.4.70
[framework/web/wrt-plugins-tizen.git] / src / Application / JSApplicationManager.cpp
index 943c343..c26b44a 100644 (file)
@@ -35,7 +35,7 @@
 #include <JSWebAPIErrorFactory.h>
 
 #include "ApplicationFactory.h"
-#include "plugin_config.h"
+#include "plugin_config_impl.h"
 #include "ApplicationController.h"
 #include "JSApplicationManager.h"
 #include "ApplicationConverter.h"
@@ -51,6 +51,7 @@
 #include <TimeTracer.h>
 #include <Export.h>
 #include <Logger.h>
+#include <Security.h>
 
 #include <plugins-ipc-message/ipc_message_support.h>
 
@@ -178,11 +179,6 @@ JSValueRef JSApplicationManager::launch(JSContextRef context,
        TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
        TIME_TRACER_ITEM_BEGIN("launch(async)", 0);
 
-       TIME_TRACER_ITEM_BEGIN("launch(ACE)", 0);
-       AceSecurityStatus status = APPLICATION_CHECK_ACCESS(APPLICATION_FUNCTION_API_LAUNCH);
-       TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-       TIME_TRACER_ITEM_END("launch(ACE)", 0);
-
        try {
                IApplicationManagerPtr appmgr;
                JSContextRef gContext;
@@ -195,6 +191,10 @@ JSValueRef JSApplicationManager::launch(JSContextRef context,
                appmgr = controller->getObject();
                gContext = controller->getContext();
 
+               TIME_TRACER_ITEM_BEGIN("launch(ACE)", 0);
+               TIZEN_CHECK_ACCESS(context, exception, controller, APPLICATION_FUNCTION_API_LAUNCH);
+               TIME_TRACER_ITEM_END("launch(ACE)", 0);
+
                EventApplicationLaunchPtr event(new EventApplicationLaunch());
                JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(gContext);               
 
@@ -242,11 +242,6 @@ JSValueRef JSApplicationManager::kill(JSContextRef context,
        TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
        TIME_TRACER_ITEM_BEGIN("kill(async)", 0);
 
-       TIME_TRACER_ITEM_BEGIN("kill(ACE)", 0);
-       AceSecurityStatus status = APPLICATION_CHECK_ACCESS(APPLICATION_FUNCTION_API_KILL);
-       TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-       TIME_TRACER_ITEM_END("kill(ACE)", 0);
-
        try {
                IApplicationManagerPtr appmgr;
                JSContextRef gContext;
@@ -259,6 +254,10 @@ JSValueRef JSApplicationManager::kill(JSContextRef context,
                appmgr = controller->getObject();
                gContext = controller->getContext();
 
+               TIME_TRACER_ITEM_BEGIN("kill(ACE)", 0);
+               TIZEN_CHECK_ACCESS(context, exception, controller, APPLICATION_FUNCTION_API_KILL);
+               TIME_TRACER_ITEM_END("kill(ACE)", 0);
+
                EventApplicationKillPtr event(new EventApplicationKill());
                JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(gContext);
         ArgumentValidator validator(context, argumentCount, arguments);
@@ -338,11 +337,6 @@ JSValueRef JSApplicationManager::launchAppControl(JSContextRef context,
        TIME_TRACER_ITEM_BEGIN("launchAppControl(async)", 0);
        TIME_TRACER_ITEM_BEGIN("launchAppControlReply(async)", 0);
 
-       TIME_TRACER_ITEM_BEGIN("launchAppControl(ACE)", 0);
-       AceSecurityStatus status = APPLICATION_CHECK_ACCESS(APPLICATION_FUNCTION_API_LAUNCH_APP_CONTROL);
-       TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-       TIME_TRACER_ITEM_END("launchAppControl(ACE)", 0);
-
        try {
                IApplicationManagerPtr appmgr;
                JSContextRef gContext;
@@ -355,6 +349,9 @@ JSValueRef JSApplicationManager::launchAppControl(JSContextRef context,
                appmgr = controller->getObject();
                gContext = controller->getContext();
 
+               TIME_TRACER_ITEM_BEGIN("launchAppControl(ACE)", 0);
+               TIZEN_CHECK_ACCESS(context, exception, controller, APPLICATION_FUNCTION_API_LAUNCH_APP_CONTROL);
+               TIME_TRACER_ITEM_END("launchAppControl(ACE)", 0);
 
                EventApplicationLaunchAppControlPtr event(new EventApplicationLaunchAppControl());
            JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(gContext);
@@ -819,12 +816,17 @@ JSValueRef JSApplicationManager::getAppCerts(JSContextRef context,
 {
        TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
 
-       TIME_TRACER_ITEM_BEGIN("(getAppCerts)ACE", 0);
-       AceSecurityStatus status = APPLICATION_CHECK_ACCESS(APPLICATION_FUNCTION_API_GET_APP_CERTS);
-       TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-       TIME_TRACER_ITEM_END("(getAppCerts)ACE", 0);
-
        try {
+               ApplicationController *controller;
+               controller = static_cast<ApplicationController*>(JSObjectGetPrivate(thisObject));
+               if (!controller) {
+                       throw TypeMismatchException("No private object.");
+               }
+
+               TIME_TRACER_ITEM_BEGIN("getAppCerts(ACE)", 0);
+               TIZEN_CHECK_ACCESS(context, exception, controller, APPLICATION_FUNCTION_API_GET_APP_CERTS);
+               TIME_TRACER_ITEM_END("getAppCerts(ACE)", 0);
+
                ArgumentValidator validator(context, argumentCount, arguments);
 
                ApplicationCertArrayPtr result = ApplicationManager::getAppCerts(validator.toString(0, true, ""));
@@ -881,12 +883,17 @@ JSValueRef JSApplicationManager::getAppMetaData(JSContextRef context,
 {
        TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
 
-       TIME_TRACER_ITEM_BEGIN("(getAppMetaData)ACE", 0);
-       AceSecurityStatus status = APPLICATION_CHECK_ACCESS(APPLICATION_FUNCTION_API_GET_APP_META_DATA);
-       TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
-       TIME_TRACER_ITEM_END("(getAppMetaData)ACE", 0);
-
        try {
+               ApplicationController *controller;
+               controller = static_cast<ApplicationController*>(JSObjectGetPrivate(thisObject));
+               if (!controller) {
+                       throw TypeMismatchException("No private object.");
+               }
+
+               TIME_TRACER_ITEM_BEGIN("getAppMetaData(ACE)", 0);
+               TIZEN_CHECK_ACCESS(context, exception, controller, APPLICATION_FUNCTION_API_GET_APP_META_DATA);
+               TIME_TRACER_ITEM_END("getAppMetaData(ACE)", 0);
+
                ArgumentValidator validator(context, argumentCount, arguments);
 
                ApplicationMetaDataArrayPtr result = ApplicationManager::getAppMetaData(validator.toString(0, true, ""));