From d5be33204f9eb3e15bfe15a437a026d4d21f601a Mon Sep 17 00:00:00 2001 From: Tomasz Marciniak Date: Thu, 30 Apr 2015 13:52:17 +0200 Subject: [PATCH] [Application] Moved checking privileges to JS layer. [Verification] Code compiles without errors. Change-Id: Ie60ccefced4aa43480c808b7e6117a34aa888026 Signed-off-by: Tomasz Marciniak --- src/application/application_api.js | 12 ++++++++++++ src/application/application_instance.cc | 20 -------------------- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/application/application_api.js b/src/application/application_api.js index 950dc915..49fbd077 100644 --- a/src/application/application_api.js +++ b/src/application/application_api.js @@ -5,6 +5,7 @@ var T = xwalk.utils.type; var Converter = xwalk.utils.converter; var AV = xwalk.utils.validator; +var Privilege = xwalk.utils.privilege; var native = new xwalk.utils.NativeManager(extension); @@ -75,6 +76,8 @@ ApplicationManager.prototype.getCurrentApplication = function() { }; ApplicationManager.prototype.kill = function() { + xwalk.utils.checkPrivilegeAccess(Privilege.APPMANAGER_KILL); + var args = AV.validateMethod(arguments, [ { name : 'contextId', @@ -110,6 +113,8 @@ ApplicationManager.prototype.kill = function() { }; ApplicationManager.prototype.launch = function() { + xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_LAUNCH); + var args = AV.validateMethod(arguments, [ { name : 'id', @@ -145,6 +150,8 @@ ApplicationManager.prototype.launch = function() { }; ApplicationManager.prototype.launchAppControl = function() { + xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_LAUNCH); + var args = AV.validateMethod(arguments, [ { name : 'appControl', @@ -368,6 +375,8 @@ ApplicationManager.prototype.getAppInfo = function() { }; ApplicationManager.prototype.getAppCerts = function() { + xwalk.utils.checkPrivilegeAccess(Privilege.APPMANAGER_CERTIFICATE); + var args = AV.validateMethod(arguments, [ { name : 'id', @@ -423,6 +432,8 @@ ApplicationManager.prototype.getAppSharedURI = function() { }; ApplicationManager.prototype.getAppMetaData = function() { + xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_INFO); + var args = AV.validateMethod(arguments, [ { name : 'id', @@ -588,6 +599,7 @@ function ApplicationInformation(data) { var sizeException; function sizeGetter() { + xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_INFO); if (undefined === size) { var callArgs = { packageId : this.packageId }; // jshint ignore:line var result = native.callSync('ApplicationInformation_getSize', callArgs); diff --git a/src/application/application_instance.cc b/src/application/application_instance.cc index ec51c462..51f1a1e1 100644 --- a/src/application/application_instance.cc +++ b/src/application/application_instance.cc @@ -12,14 +12,6 @@ namespace extension { namespace application { -namespace { -// The privileges that are required in Application API -const std::string kPrivilegeAppManagerCertificate = "http://tizen.org/privilege/appmanager.certificate"; -const std::string kPrivilegeAppManagerKill = "http://tizen.org/privilege/appmanager.kill"; -const std::string kPrivilegeApplicationInfo = "http://tizen.org/privilege/application.info"; -const std::string kPrivilegeApplicationLaunch = "http://tizen.org/privilege/application.launch"; -} // namespace - using namespace common; ApplicationInstance::ApplicationInstance(const std::string& app_id) : @@ -96,8 +88,6 @@ void ApplicationInstance::GetAppInfo(const picojson::value& args, picojson::obje void ApplicationInstance::GetAppCerts(const picojson::value& args, picojson::object& out) { LoggerD("Entered"); - CHECK_PRIVILEGE_ACCESS(kPrivilegeAppManagerCertificate, &out); - std::string app_id = app_id_; const auto& id = args.get("id"); if (id.is()) { @@ -122,8 +112,6 @@ void ApplicationInstance::GetAppSharedURI(const picojson::value& args, picojson: void ApplicationInstance::GetAppMetaData(const picojson::value& args, picojson::object& out) { LoggerD("Entered"); - CHECK_PRIVILEGE_ACCESS(kPrivilegeApplicationInfo, &out); - std::string app_id = app_id_; const auto& id = args.get("id"); if (id.is()) { @@ -167,32 +155,24 @@ void ApplicationInstance::ReplyFailure(const picojson::value& args, picojson::ob void ApplicationInstance::GetSize(const picojson::value& args, picojson::object& out) { LoggerD("Entered"); - CHECK_PRIVILEGE_ACCESS(kPrivilegeApplicationInfo, &out); - manager_.GetApplicationInformationSize(args, &out); } void ApplicationInstance::Kill(const picojson::value& args, picojson::object& out) { LoggerD("Entered"); - CHECK_PRIVILEGE_ACCESS(kPrivilegeAppManagerKill, &out); - manager_.Kill(args); } void ApplicationInstance::Launch(const picojson::value& args, picojson::object& out) { LoggerD("Entered"); - CHECK_PRIVILEGE_ACCESS(kPrivilegeApplicationLaunch, &out); - manager_.Launch(args); } void ApplicationInstance::LaunchAppControl(const picojson::value& args, picojson::object& out) { LoggerD("Entered"); - CHECK_PRIVILEGE_ACCESS(kPrivilegeApplicationLaunch, &out); - manager_.LaunchAppControl(args); } -- 2.34.1