From: ByungWoo Lee Date: Tue, 27 Jan 2015 07:53:24 +0000 (+0900) Subject: [Package] Remove callback when request failed X-Git-Tag: submit/tizen_mobile/20150603.064609~1^2~562 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=865760bcae7107d4d0bd864b8894a1f6ff43dfa8;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Package] Remove callback when request failed Change-Id: Ib9af724038bbbf155d2802f1fc3f0eafb0772f8e --- diff --git a/src/package/package_api.js b/src/package/package_api.js index d3e3ad0..95c0e3a 100644 --- a/src/package/package_api.js +++ b/src/package/package_api.js @@ -8,7 +8,6 @@ var callbackId = 0; var callbacks = {}; extension.setMessageListener(function(json) { - console.log('[Package][extension.setMessageListener] Enter'); var result = JSON.parse(json); var callback = callbacks[result['callbackId']]; callback(result); @@ -19,13 +18,9 @@ function nextCallbackId() { } function callNative(cmd, args) { - console.log('[Package][callNative] Enter'); - var json = {'cmd': cmd, 'args': args}; var argjson = JSON.stringify(json); - console.log('[Package][callNative] argjson: ' + argjson); var resultString = extension.internal.sendSyncMessage(argjson); - console.log('[Package][callNative] resultString: ' + resultString); var result = JSON.parse(resultString); if (typeof result !== 'object') { @@ -48,13 +43,10 @@ function callNative(cmd, args) { function callNativeWithCallback(cmd, args, callback) { - console.log('[Package][callNativeWithCallback] Enter'); - if (callback) { var id = nextCallbackId(); args['callbackId'] = id; callbacks[id] = callback; - console.log('[Package][callNativeWithCallback] callbackId: ' + id); } return callNative(cmd, args); @@ -62,9 +54,10 @@ function callNativeWithCallback(cmd, args, callback) { function SetReadOnlyProperty(obj, n, v) { if (arguments.length > 2) - Object.defineProperty(obj, n, {value: v, writable: false, configurable: false}); + Object.defineProperty( + obj, n, {value: v, writable: false, enumerable: true, configurable: true}); else - Object.defineProperty(obj, n, {writable: false, configurable: false}); + Object.defineProperty(obj, n, {writable: false, enumerable: true, configurable: true}); } function PackageInformation(obj) { @@ -90,8 +83,6 @@ function PackageManager() { PackageManager.prototype.install = function(packageFileURI, progressCallback) { - console.log('[Package][install] Enter'); - var args = validator_.validateArgs(arguments, [ {'name' : 'packageFileURI', 'type' : types_.STRING}, {'name' : 'progressCallback', @@ -103,25 +94,17 @@ PackageManager.prototype.install = function(packageFileURI, progressCallback) { var nativeParam = { 'packageFileURI': args.packageFileURI }; - console.log('[Package][install] packageFileURI: [' + nativeParam.packageFileURI + ']'); try { var syncResult = callNativeWithCallback( 'PackageManager_install', nativeParam, function(result) { - console.log('[Package][installCB] Enter'); - console.log('[Package][installCB] status: ' + result.status); - if (result.status == 'progress') { - console.log('[Package][installCB] Call onprogress'); args.progressCallback.onprogress(result.id, result.progress); } else if (result.status == 'complete') { - console.log('[Package][installCB] Call oncomplete'); args.progressCallback.oncomplete(result.id); } else if (result.status == 'error') { - console.log('[Package][installCB] Call errorCallback'); - var err = result['error']; if (err) { args.errorCallback(new tizen.WebAPIError(err.name, err.message)); @@ -130,7 +113,6 @@ PackageManager.prototype.install = function(packageFileURI, progressCallback) { } if (result.status == 'complete' || result.status == 'error') { - console.log('[Package][installCB] Delete callback'); delete callbacks[result['callbackId']]; } }); @@ -140,8 +122,6 @@ PackageManager.prototype.install = function(packageFileURI, progressCallback) { }; PackageManager.prototype.uninstall = function(id, progressCallback) { - console.log('[Package][uninstall] Enter'); - var args = validator_.validateArgs(arguments, [ {'name' : 'id', 'type' : types_.STRING}, {'name' : 'progressCallback', @@ -153,25 +133,17 @@ PackageManager.prototype.uninstall = function(id, progressCallback) { var nativeParam = { 'id': args.id }; - console.log('[Package][uninstall] id: [' + nativeParam.id + ']'); try { var syncResult = callNativeWithCallback( 'PackageManager_uninstall', nativeParam, function(result) { - console.log('[Package][uninstallCB] Enter'); - console.log('[Package][uninstallCB] status: ' + result.status); - if (result.status == 'progress') { - console.log('[Package][uninstallCB] Call onprogress'); args.progressCallback.onprogress(result.id, result.progress); } else if (result.status == 'complete') { - console.log('[Package][uninstallCB] Call oncomplete'); args.progressCallback.oncomplete(result.id); } else if (result.status == 'error') { - console.log('[Package][uninstallCB] Call errorCallback'); - var err = result['error']; if (err) { args.errorCallback(new tizen.WebAPIError(err.name, err.message)); @@ -180,7 +152,6 @@ PackageManager.prototype.uninstall = function(id, progressCallback) { } if (result.status == 'complete' || result.status == 'error') { - console.log('[Package][uninstallCB] Delete callback'); delete callbacks[result['callbackId']]; } }); @@ -191,8 +162,6 @@ PackageManager.prototype.uninstall = function(id, progressCallback) { }; PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallback) { - console.log('[Package][getPackagesInfo] Enter'); - var args = validator_.validateArgs(arguments, [ {'name' : 'successCallback', 'type' : types_.FUNCTION}, {'name' : 'errorCallback', 'type' : types_.FUNCTION, 'optional' : true, 'nullable' : true} @@ -206,20 +175,12 @@ PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallba 'PackageManager_getPackagesInfo', nativeParam, function(result) { - console.log('[Package][getPackagesInfoCB] Enter'); - console.log('[Package][getPackagesInfoCB] status: ' + result.status); - if (result.status == 'success') { for (var i = 0; i < result.informationArray.length; i++) { result.informationArray[i] = PackageInformation(result.informationArray[i]); } - - console.log('[Package][getPackagesInfo] Call successCallback: ' + - result.informationArray.length); args.successCallback(result.informationArray); } else if (result.status == 'error') { - console.log('[Package][getPackagesInfo] Call errorCallback'); - var err = result['error']; if (err) { args.errorCallback(new tizen.WebAPIError(err.name, err.message)); @@ -227,7 +188,6 @@ PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallba } } - console.log('[Package][getPackagesInfoCB] Delete callback'); delete callbacks[result['callbackId']]; }); } catch (e) { @@ -236,8 +196,6 @@ PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallba }; PackageManager.prototype.getPackageInfo = function() { - console.log('[Package][getPackageInfo] Enter'); - var args = validator_.validateArgs(arguments, [ {'name': 'id', 'type': types_.STRING, 'optional' : true, 'nullable' : true} ]); @@ -258,8 +216,6 @@ PackageManager.prototype.getPackageInfo = function() { }; PackageManager.prototype.setPackageInfoEventListener = function(eventCallback) { - console.log('[Package][setPackageInfoEventListener] Enter'); - var args = validator_.validateArgs( arguments, [ @@ -276,9 +232,6 @@ PackageManager.prototype.setPackageInfoEventListener = function(eventCallback) { 'PackageManager_setPackageInfoEventListener', nativeParam, function(result) { - console.log('[Package][PackageInfoEventListener] Enter'); - console.log('[Package][PackageInfoEventListener] status: ' + result.status); - if (result.status == 'installed') { args.eventCallback.oninstalled(PackageInformation(result.info)); } @@ -295,15 +248,12 @@ PackageManager.prototype.setPackageInfoEventListener = function(eventCallback) { }; PackageManager.prototype.unsetPackageInfoEventListener = function() { - console.log('[Package][unsetPackageInfoEventListener] Enter'); - var nativeParam = { }; try { var syncResult = callNative('PackageManager_unsetPackageInfoEventListener', nativeParam); if (typeof syncResult != 'boolean') { - console.log('[Package][unsetPackageInfoEventListenerCB] Delete callback ' + syncResult); delete callbacks[syncResult]; } } catch (e) { diff --git a/src/package/package_info_provider.cc b/src/package/package_info_provider.cc index 4f264b9..27c1751 100644 --- a/src/package/package_info_provider.cc +++ b/src/package/package_info_provider.cc @@ -128,7 +128,6 @@ static bool PackageAppInfoCb( return false; } - LoggerD("app_id: [%s]", app_id); array_data->push_back(picojson::value(app_id)); return true; } @@ -253,7 +252,6 @@ bool PackageInfoProvider::GetCurrentPackageId( char *app_id = NULL; int pid = getpid(); - LoggerD("pid: %d", pid); ret = app_manager_get_app_id(pid, &app_id); if ( ret != APP_MANAGER_ERROR_NONE ) { LoggerE("Failed to get app id"); diff --git a/src/package/package_instance.cc b/src/package/package_instance.cc index e63e7be..0c802c5 100644 --- a/src/package/package_instance.cc +++ b/src/package/package_instance.cc @@ -60,7 +60,6 @@ static void* PackageThreadWork( switch ( userData->work_ ) { case PackageThreadWorkGetPackagesInfo: { - LoggerD("Start PackageThreadWorkGetPackagesInfo"); picojson::object output; PackageInfoProvider::GetPackagesInfo(output); userData->data_ = output; @@ -91,7 +90,6 @@ static void PackageRequestCb( package_manager_event_type_e event_type, package_manager_event_state_e event_state, int progress, package_manager_error_e error, void *user_data) { - LoggerD("Enter [%s]", package); PackageInstance* instance = static_cast(user_data); if ( !instance ) { @@ -100,30 +98,28 @@ static void PackageRequestCb( } if ( event_state == PACKAGE_MANAGER_EVENT_STATE_STARTED ) { - LoggerD("[Started] Do not invoke JS callback"); return; } picojson::object param; if ( event_state == PACKAGE_MANAGER_EVENT_STATE_FAILED ) { - LoggerD("[Failed]"); + LoggerE("[Failed]"); param["status"] = picojson::value("error"); param["error"] = UnknownException( "It is not allowed to install the package by the platform or " \ "any other platform error occurs").ToJSON(); } else if ( event_state == PACKAGE_MANAGER_EVENT_STATE_PROCESSING ) { - LoggerD("[Onprogress] %d %", progress); param["status"] = picojson::value("progress"); param["progress"] = picojson::value(static_cast(progress)); param["id"] = picojson::value(std::string(package)); } else if ( event_state == PACKAGE_MANAGER_EVENT_STATE_COMPLETED ) { - LoggerD("[Oncomplete]"); param["status"] = picojson::value("complete"); param["id"] = picojson::value(std::string(package)); } instance->InvokeCallback(id, param); - if ( event_state == PACKAGE_MANAGER_EVENT_STATE_COMPLETED ) { + if ( event_state == PACKAGE_MANAGER_EVENT_STATE_COMPLETED + || event_state == PACKAGE_MANAGER_EVENT_STATE_FAILED ) { LoggerD("Request has been completed"); instance->DeregisterCallback(id); } @@ -201,7 +197,6 @@ static std::string convertUriToPath(const std::string& uri) { result = str; } - LoggerD("URI [%s]", result.c_str()); return result; } @@ -259,22 +254,20 @@ PackageInstance::~PackageInstance() { } void PackageInstance::RegisterCallback( - int requestId, int callback_id) { + int request_id, int callback_id) { LoggerD("Enter"); - callbacks_map_[requestId] = callback_id; + callbacks_map_[request_id] = callback_id; } -void PackageInstance::DeregisterCallback(int requestId) { - LoggerD("Enter [%d]", requestId); - callbacks_map_.erase(requestId); +void PackageInstance::DeregisterCallback(int request_id) { + callbacks_map_.erase(request_id); } void PackageInstance::InvokeCallback( - int requestId, picojson::object& param) { - LoggerD("Enter [%d]", requestId); + int request_id, picojson::object& param) { + LoggerD("Enter"); - int callback_id = callbacks_map_[requestId]; - LoggerD("callbackId: %d", callback_id); + int callback_id = callbacks_map_[request_id]; param["callbackId"] = picojson::value( static_cast(callback_id)); @@ -291,10 +284,8 @@ void PackageInstance::PackageManagerInstall( int callback_id = static_cast( args.get("callbackId").get()); - LoggerD("callbackId: %d", callback_id); const std::string& packageFileURI = convertUriToPath(args.get("packageFileURI").get()); - LoggerD("packageFileURI: %s", packageFileURI.c_str()); /* Need to check privilege ReportError( @@ -312,9 +303,9 @@ void PackageInstance::PackageManagerInstall( return; } - int requestId = 0; + int request_id = 0; int ret = package_manager_request_install( - request_, packageFileURI.c_str(), &requestId); + request_, packageFileURI.c_str(), &request_id); if ( ret != PACKAGE_MANAGER_ERROR_NONE ) { if ( ret == PACKAGE_MANAGER_ERROR_INVALID_PARAMETER ) { LoggerE("The package is not found at the specified location"); @@ -329,7 +320,7 @@ void PackageInstance::PackageManagerInstall( "the platform or any other platform error occurs")); } } else { - RegisterCallback(requestId, callback_id); + RegisterCallback(request_id, callback_id); } ReportSuccess(out); @@ -344,9 +335,7 @@ void PackageInstance::PackageManagerUninstall( int callback_id = static_cast(args.get("callbackId").get()); - LoggerD("callbackId: %d", callback_id); const std::string& id = args.get("id").get(); - LoggerD("id: %s", id.c_str()); /* Need to check privilege ReportError( @@ -364,8 +353,8 @@ void PackageInstance::PackageManagerUninstall( return; } - int requestId = 0; - int ret = package_manager_request_uninstall(request_, id.c_str(), &requestId); + int request_id = 0; + int ret = package_manager_request_uninstall(request_, id.c_str(), &request_id); if ( ret != PACKAGE_MANAGER_ERROR_NONE ) { if ( ret == PACKAGE_MANAGER_ERROR_INVALID_PARAMETER ) { LoggerE("The package is not found at the specified location"); @@ -380,7 +369,7 @@ void PackageInstance::PackageManagerUninstall( "any other platform error occurs")); } } else { - RegisterCallback(requestId, callback_id); + RegisterCallback(request_id, callback_id); } ReportSuccess(out); @@ -392,7 +381,6 @@ void PackageInstance::PackageManagerGetpackagesinfo( CHECK_EXIST(args, "callbackId", out) int callback_id = static_cast(args.get("callbackId").get()); - LoggerD("callbackId: %d", callback_id); /* Need to check privilege ReportError( @@ -422,7 +410,6 @@ void PackageInstance::PackageManagerGetpackageinfo( if ( args.contains("id") ) { std::string id = args.get("id").get(); - LoggerD("package id : [%s]", id.c_str()); PackageInfoProvider::GetPackageInfo(id.c_str(), out); } else { PackageInfoProvider::GetPackageInfo(out); @@ -445,7 +432,6 @@ void PackageInstance:: CHECK_EXIST(args, "callbackId", out) int callback_id = static_cast(args.get("callbackId").get()); - LoggerD("callbackId: %d", callback_id); /* Need to check privilege ReportError( diff --git a/src/package/package_instance.h b/src/package/package_instance.h index 1b440cc..59736d7 100644 --- a/src/package/package_instance.h +++ b/src/package/package_instance.h @@ -20,17 +20,17 @@ class PackageInstance : public common::ParsedInstance { PackageInstance(); virtual ~PackageInstance(); - void InvokeCallback(int requestId, picojson::object& param); + void InvokeCallback(int request_id, picojson::object& param); void InvokeListener(picojson::object& param); - void DeregisterCallback(int requestId); + void DeregisterCallback(int request_id); private: package_manager_request_h request_; package_manager_h manager_; int listener_id_; - std::map callbacks_map_; // + std::map callbacks_map_; // - void RegisterCallback(int requestId, int callback_id); + void RegisterCallback(int request_id, int callback_id); void InvokeErrorCallbackAsync (int callback_id, const common::PlatformException& ex);