已关闭
Signed-off-by: sora_skyline <zhouyuan90@huawei.com> #19699
zhouyuan创建于 6月26日关闭于 1 天前
Signed-off-by: sora_skyline <zhouyuan90@huawei.com> #19699
已关闭
共 11 个文件变更+136-53
| @@ -67,8 +67,7 @@ constexpr int32_t ERR_FAILURE = -1; | |||
| 67 | const std::string MAX_UINT64_VALUE = "18446744073709551615"; | 67 | const std::string MAX_UINT64_VALUE = "18446744073709551615"; |
| 68 | std::shared_ptr<AppExecFwk::EventHandler> mainHandler_ = nullptr; | 68 | std::shared_ptr<AppExecFwk::EventHandler> mainHandler_ = nullptr; |
| 69 | 69 | ||
| 70 | -sptr<AAFwk::AcquireShareDataCallbackStub> CreateShareDataCallbackStub( | 70 | +sptr<AAFwk::AcquireShareDataCallbackStub> CreateShareDataCallbackStub(ani_env *env, ani_ref callbackRef) |
| 71 | - ani_env *env, ani_ref callbackRef) | ||
| 72 | { | 71 | { |
| 73 | if (env == nullptr) { | 72 | if (env == nullptr) { |
| 74 | TAG_LOGE(AAFwkTag::ABILITYMGR, "null env"); | 73 | TAG_LOGE(AAFwkTag::ABILITYMGR, "null env"); |
| @@ -88,32 +87,33 @@ sptr<AAFwk::AcquireShareDataCallbackStub> CreateShareDataCallbackStub( | |||
| 88 | mainHandler_ = std::make_shared<AppExecFwk::EventHandler>(AppExecFwk::EventRunner::GetMainEventRunner()); | 87 | mainHandler_ = std::make_shared<AppExecFwk::EventHandler>(AppExecFwk::EventRunner::GetMainEventRunner()); |
| 89 | } | 88 | } |
| 90 | shareDataCallbackStub->SetHandler(mainHandler_); | 89 | shareDataCallbackStub->SetHandler(mainHandler_); |
| 91 | - AAFwk::ShareRuntimeTask task = | 90 | + AAFwk::ShareRuntimeTask task = [aniVM, callbackRef](int32_t resultCode, const AAFwk::WantParams &wantParam) { |
| 92 | - [aniVM, callbackRef](int32_t resultCode, const AAFwk::WantParams &wantParam) { | 91 | + ani_env *env = nullptr; |
| 93 | - ani_env *env = nullptr; | 92 | + if (aniVM->GetEnv(ANI_VERSION_1, &env) != ANI_OK || env == nullptr) { |
| 94 | - ani_status status = aniVM->GetEnv(ANI_VERSION_1, &env); | 93 | + TAG_LOGE(AAFwkTag::ABILITYMGR, "null env"); |
| 95 | - if (status != ANI_OK || env == nullptr) { | 94 | + return; |
| 96 | - TAG_LOGE(AAFwkTag::ABILITYMGR, "null env"); | 95 | + } |
| 97 | - return; | 96 | + if (resultCode != 0) { |
| 98 | - } | ||
| 99 | - if (resultCode != 0) { | ||
| 100 | - AppExecFwk::AsyncCallback(env, static_cast<ani_object>(callbackRef), | ||
| 101 | - EtsErrorUtil::CreateErrorByNativeErr(env, resultCode), nullptr); | ||
| 102 | - env->GlobalReference_Delete(callbackRef); | ||
| 103 | - return; | ||
| 104 | - } | ||
| 105 | - ani_ref wantParamRef = AppExecFwk::WrapWantParams(env, wantParam); | ||
| 106 | - if (wantParamRef == nullptr) { | ||
| 107 | - TAG_LOGE(AAFwkTag::ABILITYMGR, "null wantParamRef"); | ||
| 108 | - AppExecFwk::AsyncCallback(env, static_cast<ani_object>(callbackRef), | ||
| 109 | - EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_CODE_INNER), nullptr); | ||
| 110 | - env->GlobalReference_Delete(callbackRef); | ||
| 111 | - return; | ||
| 112 | - } | ||
| 113 | AppExecFwk::AsyncCallback(env, static_cast<ani_object>(callbackRef), | 97 | AppExecFwk::AsyncCallback(env, static_cast<ani_object>(callbackRef), |
| 114 | - EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_OK), static_cast<ani_object>(wantParamRef)); | 98 | + EtsErrorUtil::CreateErrorByNativeErr(env, resultCode, "", |
| 99 | + GetInnerErrorMsg(AbilityInnerErrorMsg::ACQUIRE_SHARE_DATA_FAILED)), nullptr); | ||
| 115 | env->GlobalReference_Delete(callbackRef); | 100 | env->GlobalReference_Delete(callbackRef); |
| 116 | - }; | 101 | + return; |
| 102 | + } | ||
| 103 | + ani_ref wantParamRef = AppExecFwk::WrapWantParams(env, wantParam); | ||
| 104 | + if (wantParamRef == nullptr) { | ||
| 105 | + TAG_LOGE(AAFwkTag::ABILITYMGR, "null wantParamRef"); | ||
| 106 | + AppExecFwk::AsyncCallback(env, static_cast<ani_object>(callbackRef), | ||
| 107 | + EtsErrorUtil::CreateErrorByNativeErr(env, | ||
| 108 | + static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), "", | ||
| 109 | + GetInnerErrorMsg(AbilityInnerErrorMsg::ACQUIRE_SHARE_DATA_FAILED)), nullptr); | ||
| 110 | + env->GlobalReference_Delete(callbackRef); | ||
| 111 | + return; | ||
| 112 | + } | ||
| 113 | + AppExecFwk::AsyncCallback(env, static_cast<ani_object>(callbackRef), | ||
| 114 | + EtsErrorUtil::CreateError(env, AbilityErrorCode::ERROR_OK), static_cast<ani_object>(wantParamRef)); | ||
| 115 | + env->GlobalReference_Delete(callbackRef); | ||
| 116 | + }; | ||
| 117 | shareDataCallbackStub->SetShareRuntimeTask(task); | 117 | shareDataCallbackStub->SetShareRuntimeTask(task); |
| 118 | return shareDataCallbackStub; | 118 | return shareDataCallbackStub; |
| 119 | } | 119 | } |
| @@ -310,8 +310,8 @@ void EtsAbilityManager::GetTopAbility(ani_env *env, ani_object callback) | |||
| 310 | TAG_LOGE(AAFwkTag::ABILITYMGR, "null elementNameobj"); | 310 | TAG_LOGE(AAFwkTag::ABILITYMGR, "null elementNameobj"); |
| 311 | resultCode = ERR_FAILURE; | 311 | resultCode = ERR_FAILURE; |
| 312 | } | 312 | } |
| 313 | - AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateErrorByNativeErr(env, resultCode), | 313 | + AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateErrorByNativeErr(env, resultCode, "", |
| 314 | - elementNameobj); | 314 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GET_TOP_ABILITY_FAILED)), elementNameobj); |
| 315 | return; | 315 | return; |
| 316 | } | 316 | } |
| 317 | 317 | ||
| @@ -341,7 +341,8 @@ void EtsAbilityManager::GetAbilityRunningInfos(ani_env *env, ani_object callback | |||
| 341 | auto errcode = AAFwk::AbilityManagerClient::GetInstance()->GetAbilityRunningInfos(infos); | 341 | auto errcode = AAFwk::AbilityManagerClient::GetInstance()->GetAbilityRunningInfos(infos); |
| 342 | ani_object retObject = nullptr; | 342 | ani_object retObject = nullptr; |
| 343 | AbilityManagerEts::WrapAbilityRunningInfoArray(env, retObject, infos); | 343 | AbilityManagerEts::WrapAbilityRunningInfoArray(env, retObject, infos); |
| 344 | - AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateErrorByNativeErr(env, errcode), retObject); | 344 | + AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateErrorByNativeErr(env, errcode, "", |
| 345 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GET_ABILITY_RUNNING_INFOS_FAILED)), retObject); | ||
| 345 | } | 346 | } |
| 346 | 347 | ||
| 347 | void EtsAbilityManager::IsEmbeddedOpenAllowedCheck(ani_env *env, ani_object contextObj) | 348 | void EtsAbilityManager::IsEmbeddedOpenAllowedCheck(ani_env *env, ani_object contextObj) |
| @@ -755,7 +756,8 @@ void EtsAbilityManager::NativeAcquireShareData(ani_env *env, ani_int aniMissionI | |||
| 755 | if (shareDataCallbackStub == nullptr) { | 756 | if (shareDataCallbackStub == nullptr) { |
| 756 | TAG_LOGE(AAFwkTag::ABILITYMGR, "null shareDataCallbackStub"); | 757 | TAG_LOGE(AAFwkTag::ABILITYMGR, "null shareDataCallbackStub"); |
| 757 | AppExecFwk::AsyncCallback(env, callbackObj, | 758 | AppExecFwk::AsyncCallback(env, callbackObj, |
| 758 | - EtsErrorUtil::CreateErrorByNativeErr(env, AAFwk::INNER_ERR), nullptr); | 759 | + EtsErrorUtil::CreateErrorByNativeErr(env, AAFwk::INNER_ERR, "", |
| 760 | + GetInnerErrorMsg(AbilityInnerErrorMsg::ACQUIRE_SHARE_DATA_FAILED)), nullptr); | ||
| 759 | env->GlobalReference_Delete(callbackRef); | 761 | env->GlobalReference_Delete(callbackRef); |
| 760 | return; | 762 | return; |
| 761 | } | 763 | } |
| @@ -771,7 +773,8 @@ void EtsAbilityManager::NativeAcquireShareData(ani_env *env, ani_int aniMissionI | |||
| 771 | if (err != ERR_OK) { | 773 | if (err != ERR_OK) { |
| 772 | TAG_LOGE(AAFwkTag::ABILITYMGR, "error: %{public}d", err); | 774 | TAG_LOGE(AAFwkTag::ABILITYMGR, "error: %{public}d", err); |
| 773 | AppExecFwk::AsyncCallback(env, callbackObj, | 775 | AppExecFwk::AsyncCallback(env, callbackObj, |
| 774 | - EtsErrorUtil::CreateErrorByNativeErr(env, err), nullptr); | 776 | + EtsErrorUtil::CreateErrorByNativeErr(env, err, "", |
| 777 | + GetInnerErrorMsg(AbilityInnerErrorMsg::ACQUIRE_SHARE_DATA_FAILED)), nullptr); | ||
| 775 | env->GlobalReference_Delete(callbackRef); | 778 | env->GlobalReference_Delete(callbackRef); |
| 776 | } | 779 | } |
| 777 | } | 780 | } |
| @@ -41,6 +41,7 @@ ohos_shared_library("dialog_session_ani_kit") { | |||
| 41 | "${ability_runtime_innerkits_path}/ability_manager:ability_manager", | 41 | "${ability_runtime_innerkits_path}/ability_manager:ability_manager", |
| 42 | "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", | 42 | "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", |
| 43 | "${ability_runtime_innerkits_path}/runtime:runtime", | 43 | "${ability_runtime_innerkits_path}/runtime:runtime", |
| 44 | + "${ability_runtime_native_path}/ability/native:ability_business_error", | ||
| 44 | "${ability_runtime_native_path}/appkit:app_context", | 45 | "${ability_runtime_native_path}/appkit:app_context", |
| 45 | "${ability_runtime_path}/frameworks/ets/ani/ani_common:ani_common", | 46 | "${ability_runtime_path}/frameworks/ets/ani/ani_common:ani_common", |
| 46 | ] | 47 | ] |
| @@ -15,6 +15,7 @@ | |||
| 15 | 15 | ||
| 16 | 16 | ||
| 17 | 17 | ||
| 18 | + | ||
| 18 | 19 | ||
| 19 | 20 | ||
| 20 | 21 | ||
| @@ -61,7 +62,8 @@ static void SendDialogResult( | |||
| 61 | isAllow = static_cast<bool>(etsIsAllow); | 62 | isAllow = static_cast<bool>(etsIsAllow); |
| 62 | auto errorCode = | 63 | auto errorCode = |
| 63 | AAFwk::AbilityManagerClient::GetInstance()->SendDialogResult(want, dialogSessionId, isAllow); | 64 | AAFwk::AbilityManagerClient::GetInstance()->SendDialogResult(want, dialogSessionId, isAllow); |
| 64 | - AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateErrorByNativeErr(env, errorCode), nullptr); | 65 | + AppExecFwk::AsyncCallback(env, callback, EtsErrorUtil::CreateErrorByNativeErr(env, errorCode, "", |
| 66 | + GetInnerErrorMsg(AbilityInnerErrorMsg::SEND_DIALOG_RESULT_FAILED)), nullptr); | ||
| 65 | } | 67 | } |
| 66 | 68 | ||
| 67 | static ani_object GetDialogSessionInfo(ani_env *env, ani_string etsDialogSessionId) | 69 | static ani_object GetDialogSessionInfo(ani_env *env, ani_string etsDialogSessionId) |
| @@ -88,7 +90,14 @@ static ani_object GetDialogSessionInfo(ani_env *env, ani_string etsDialogSession | |||
| 88 | return AppExecFwk::CreateEtsNull(env); | 90 | return AppExecFwk::CreateEtsNull(env); |
| 89 | } | 91 | } |
| 90 | 92 | ||
| 91 | - return AppExecFwk::WrapDialogSessionInfo(env, *dialogSessionInfo); | 93 | + ani_object dialogSessionInfoObj = AppExecFwk::WrapDialogSessionInfo(env, *dialogSessionInfo); |
| 94 | + if (dialogSessionInfoObj == nullptr) { | ||
| 95 | + EtsErrorUtil::ThrowError(env, EtsErrorUtil::CreateErrorByNativeErr(env, | ||
| 96 | + static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), "", | ||
| 97 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GET_DIALOG_SESSION_INFO_FAILED))); | ||
| 98 | + return AppExecFwk::CreateEtsNull(env); | ||
| 99 | + } | ||
| 100 | + return dialogSessionInfoObj; | ||
| 92 | } | 101 | } |
| 93 | 102 | ||
| 94 | void EtsDialogSessionInit(ani_env *env) | 103 | void EtsDialogSessionInit(ani_env *env) |
| @@ -146,4 +155,4 @@ ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result) | |||
| 146 | } | 155 | } |
| 147 | } | 156 | } |
| 148 | } // namespace AbilityRuntime | 157 | } // namespace AbilityRuntime |
| 149 | -} // namespace OHOS | 158 | +} // namespace OHOS |
| @@ -113,7 +113,8 @@ static void grantUriPermissionCallbackSync([[maybe_unused]]ani_env *env, | |||
| 113 | int32_t errCode = AAFwk::UriPermissionManagerClient::GetInstance().GrantUriPermission(uriVec, flagId, | 113 | int32_t errCode = AAFwk::UriPermissionManagerClient::GetInstance().GrantUriPermission(uriVec, flagId, |
| 114 | targetBundleName, appCloneIndex); | 114 | targetBundleName, appCloneIndex); |
| 115 | if (errCode != ERR_OK) { | 115 | if (errCode != ERR_OK) { |
| 116 | - etsErrCode = EtsErrorUtil::CreateErrorByNativeErr(env, errCode); | 116 | + etsErrCode = EtsErrorUtil::CreateErrorByNativeErr(env, errCode, "", |
| 117 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GRANT_URI_PERMISSION_FAILED)); | ||
| 117 | } | 118 | } |
| 118 | 119 | ||
| 119 | AppExecFwk::AsyncCallback(env, callback, etsErrCode, nullptr); | 120 | AppExecFwk::AsyncCallback(env, callback, etsErrCode, nullptr); |
| @@ -150,7 +151,8 @@ static void revokeUriPermissionCallbackSync([[maybe_unused]]ani_env *env, | |||
| 150 | int32_t errCode = AAFwk::UriPermissionManagerClient::GetInstance().RevokeUriPermissionManually(uriVec, | 151 | int32_t errCode = AAFwk::UriPermissionManagerClient::GetInstance().RevokeUriPermissionManually(uriVec, |
| 151 | targetBundleName, appCloneIndex); | 152 | targetBundleName, appCloneIndex); |
| 152 | if (errCode != ERR_OK) { | 153 | if (errCode != ERR_OK) { |
| 153 | - etsErrCode = EtsErrorUtil::CreateErrorByNativeErr(env, errCode); | 154 | + etsErrCode = EtsErrorUtil::CreateErrorByNativeErr(env, errCode, "", |
| 155 | + GetInnerErrorMsg(AbilityInnerErrorMsg::REVOKE_URI_PERMISSION_FAILED)); | ||
| 154 | } | 156 | } |
| 155 | AppExecFwk::AsyncCallback(env, callback, etsErrCode, nullptr); | 157 | AppExecFwk::AsyncCallback(env, callback, etsErrCode, nullptr); |
| 156 | } | 158 | } |
| @@ -181,7 +183,8 @@ static void grantUriPermissionByKeyCallbackSync([[maybe_unused]]ani_env *env, | |||
| 181 | if (errCode != ERR_OK) { | 183 | if (errCode != ERR_OK) { |
| 182 | result = ERR_FAILURE; | 184 | result = ERR_FAILURE; |
| 183 | TAG_LOGE(AAFwkTag::DELEGATOR, "GrantUriPermissionByKey failed status: %{public}d", errCode); | 185 | TAG_LOGE(AAFwkTag::DELEGATOR, "GrantUriPermissionByKey failed status: %{public}d", errCode); |
| 184 | - etsErrCode = EtsErrorUtil::CreateErrorByNativeErr(env, errCode); | 186 | + etsErrCode = EtsErrorUtil::CreateErrorByNativeErr(env, errCode, "", |
| 187 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GRANT_URI_PERMISSION_BY_KEY_FAILED)); | ||
| 185 | AppExecFwk::AsyncCallback(env, callback, etsErrCode, CreateDouble(env, result)); | 188 | AppExecFwk::AsyncCallback(env, callback, etsErrCode, CreateDouble(env, result)); |
| 186 | return; | 189 | return; |
| 187 | } | 190 | } |
| @@ -214,7 +217,8 @@ static void grantUriPermissionByKeyAsCallerCallbackSync([[maybe_unused]]ani_env | |||
| 214 | uriStr, flag, callerTokenId, targetTokenId); | 217 | uriStr, flag, callerTokenId, targetTokenId); |
| 215 | if (errCode != ERR_OK) { | 218 | if (errCode != ERR_OK) { |
| 216 | result = ERR_FAILURE; | 219 | result = ERR_FAILURE; |
| 217 | - etsErrCode = EtsErrorUtil::CreateErrorByNativeErr(env, errCode); | 220 | + etsErrCode = EtsErrorUtil::CreateErrorByNativeErr(env, errCode, "", |
| 221 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GRANT_URI_PERMISSION_AS_CALLER_FAILED)); | ||
| 218 | } | 222 | } |
| 219 | AppExecFwk::AsyncCallback(env, callback, etsErrCode, CreateDouble(env, result)); | 223 | AppExecFwk::AsyncCallback(env, callback, etsErrCode, CreateDouble(env, result)); |
| 220 | } | 224 | } |
| @@ -293,4 +297,4 @@ ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result) | |||
| 293 | } | 297 | } |
| 294 | } | 298 | } |
| 295 | } // namespace AbilityRuntime | 299 | } // namespace AbilityRuntime |
| 296 | -} // namespace OHOS | 300 | +} // namespace OHOS |
| @@ -387,7 +387,8 @@ private: | |||
| 387 | 387 | ||
| 388 | task.ResolveWithNoError(env, CreateJsAbilityRunningInfoArray(env, infos)); | 388 | task.ResolveWithNoError(env, CreateJsAbilityRunningInfoArray(env, infos)); |
| 389 | } else { | 389 | } else { |
| 390 | - task.Reject(env, CreateJsError(env, GetJsErrorCodeByNativeError(errcode))); | 390 | + task.Reject(env, CreateJsErrorByNativeErr(env, errcode, "", |
| 391 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GET_ABILITY_RUNNING_INFOS_FAILED))); | ||
| 391 | 392 | ||
| 392 | task.Resolve(env, CreateJsAbilityRunningInfoArray(env, infos)); | 393 | task.Resolve(env, CreateJsAbilityRunningInfoArray(env, infos)); |
| 393 | } else { | 394 | } else { |
| @@ -522,10 +523,17 @@ private: | |||
| 522 | [](napi_env env, NapiAsyncTask &task, int32_t status) { | 523 | [](napi_env env, NapiAsyncTask &task, int32_t status) { |
| 523 | HandleScope handleScope(env); | 524 | HandleScope handleScope(env); |
| 524 | AppExecFwk::ElementName elementName = AbilityManagerClient::GetInstance()->GetTopAbility(); | 525 | AppExecFwk::ElementName elementName = AbilityManagerClient::GetInstance()->GetTopAbility(); |
| 526 | + napi_value elementNameObj = CreateJsElementName(env, elementName); | ||
| 527 | + if (elementNameObj == nullptr) { | ||
| 528 | + task.Reject(env, CreateJsErrorByNativeErr(env, | ||
| 529 | + static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), "", | ||
| 530 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GET_TOP_ABILITY_FAILED))); | ||
| 531 | + return; | ||
| 532 | + } | ||
| 525 | 533 | ||
| 526 | - task.ResolveWithNoError(env, CreateJsElementName(env, elementName)); | 534 | + task.ResolveWithNoError(env, elementNameObj); |
| 527 | 535 | ||
| 528 | - task.Resolve(env, CreateJsElementName(env, elementName)); | 536 | + task.Resolve(env, elementNameObj); |
| 529 | 537 | ||
| 530 | }; | 538 | }; |
| 531 | 539 | ||
| @@ -558,12 +566,15 @@ private: | |||
| 558 | AAFwk::ShareRuntimeTask task = [env, asyncTask](int32_t resultCode, const AAFwk::WantParams &wantParam) { | 566 | AAFwk::ShareRuntimeTask task = [env, asyncTask](int32_t resultCode, const AAFwk::WantParams &wantParam) { |
| 559 | HandleScope handleScope(env); | 567 | HandleScope handleScope(env); |
| 560 | if (resultCode != 0) { | 568 | if (resultCode != 0) { |
| 561 | - asyncTask->Reject(env, CreateJsError(env, GetJsErrorCodeByNativeError(resultCode))); | 569 | + asyncTask->Reject(env, CreateJsErrorByNativeErr(env, resultCode, "", |
| 570 | + GetInnerErrorMsg(AbilityInnerErrorMsg::ACQUIRE_SHARE_DATA_FAILED))); | ||
| 562 | return; | 571 | return; |
| 563 | } | 572 | } |
| 564 | napi_value abilityResult = AppExecFwk::WrapWantParams(env, wantParam); | 573 | napi_value abilityResult = AppExecFwk::WrapWantParams(env, wantParam); |
| 565 | if (abilityResult == nullptr) { | 574 | if (abilityResult == nullptr) { |
| 566 | - asyncTask->Reject(env, CreateJsError(env, AbilityErrorCode::ERROR_CODE_INNER)); | 575 | + asyncTask->Reject(env, CreateJsErrorByNativeErr(env, |
| 576 | + static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), "", | ||
| 577 | + GetInnerErrorMsg(AbilityInnerErrorMsg::ACQUIRE_SHARE_DATA_FAILED))); | ||
| 567 | } else { | 578 | } else { |
| 568 | asyncTask->ResolveWithNoError(env, abilityResult); | 579 | asyncTask->ResolveWithNoError(env, abilityResult); |
| 569 | } | 580 | } |
| @@ -574,7 +585,8 @@ private: | |||
| 574 | shareDataCallbackStub->SetShareRuntimeTask(task); | 585 | shareDataCallbackStub->SetShareRuntimeTask(task); |
| 575 | auto err = AbilityManagerClient::GetInstance()->AcquireShareData(missionId, shareDataCallbackStub); | 586 | auto err = AbilityManagerClient::GetInstance()->AcquireShareData(missionId, shareDataCallbackStub); |
| 576 | if (err != 0) { | 587 | if (err != 0) { |
| 577 | - asyncTask->Reject(env, CreateJsError(env, GetJsErrorCodeByNativeError(err))); | 588 | + asyncTask->Reject(env, CreateJsErrorByNativeErr(env, err, "", |
| 589 | + GetInnerErrorMsg(AbilityInnerErrorMsg::ACQUIRE_SHARE_DATA_FAILED))); | ||
| 578 | } | 590 | } |
| 579 | return handleEscape.Escape(result); | 591 | return handleEscape.Escape(result); |
| 580 | } | 592 | } |
| @@ -30,6 +30,7 @@ ohos_shared_library("dialogsession_napi") { | |||
| 30 | "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", | 30 | "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", |
| 31 | "${ability_runtime_innerkits_path}/runtime:runtime", | 31 | "${ability_runtime_innerkits_path}/runtime:runtime", |
| 32 | "${ability_runtime_napi_path}/inner/napi_common:napi_common", | 32 | "${ability_runtime_napi_path}/inner/napi_common:napi_common", |
| 33 | + "${ability_runtime_native_path}/ability/native:ability_business_error", | ||
| 33 | "${ability_runtime_native_path}/appkit:app_context", | 34 | "${ability_runtime_native_path}/appkit:app_context", |
| 34 | ] | 35 | ] |
| 35 | if (ability_runtime_graphics) { | 36 | if (ability_runtime_graphics) { |
| @@ -15,6 +15,7 @@ | |||
| 15 | 15 | ||
| 16 | 16 | ||
| 17 | 17 | ||
| 18 | + | ||
| 18 | 19 | ||
| 19 | 20 | ||
| 20 | 21 | ||
| @@ -78,7 +79,14 @@ private: | |||
| 78 | return CreateJsUndefined(env); | 79 | return CreateJsUndefined(env); |
| 79 | } | 80 | } |
| 80 | 81 | ||
| 81 | - return OHOS::AppExecFwk::WrapDialogSessionInfo(env, *dialogSessionInfo); | 82 | + napi_value dialogSessionInfoObj = OHOS::AppExecFwk::WrapDialogSessionInfo(env, *dialogSessionInfo); |
| 83 | + if (dialogSessionInfoObj == nullptr) { | ||
| 84 | + napi_throw(env, CreateJsErrorByNativeErr(env, | ||
| 85 | + static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), "", | ||
| 86 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GET_DIALOG_SESSION_INFO_FAILED))); | ||
| 87 | + return CreateJsUndefined(env); | ||
| 88 | + } | ||
| 89 | + return dialogSessionInfoObj; | ||
| 82 | } | 90 | } |
| 83 | 91 | ||
| 84 | napi_value OnSendDialogResult(napi_env env, NapiCallbackInfo& info) | 92 | napi_value OnSendDialogResult(napi_env env, NapiCallbackInfo& info) |
| @@ -114,7 +122,8 @@ private: | |||
| 114 | HandleScope handleScope(env); | 122 | HandleScope handleScope(env); |
| 115 | auto errorcode = AbilityManagerClient::GetInstance()->SendDialogResult(want, dialogSessionId, isAllow); | 123 | auto errorcode = AbilityManagerClient::GetInstance()->SendDialogResult(want, dialogSessionId, isAllow); |
| 116 | if (errorcode) { | 124 | if (errorcode) { |
| 117 | - task.Reject(env, CreateJsError(env, errorcode, "Send dialog result failed")); | 125 | + task.Reject(env, CreateJsErrorByNativeErr(env, errorcode, "", |
| 126 | + GetInnerErrorMsg(AbilityInnerErrorMsg::SEND_DIALOG_RESULT_FAILED))); | ||
| 118 | } else { | 127 | } else { |
| 119 | task.ResolveWithNoError(env, CreateJsUndefined(env)); | 128 | task.ResolveWithNoError(env, CreateJsUndefined(env)); |
| 120 | } | 129 | } |
| @@ -31,6 +31,7 @@ ohos_shared_library("uripermissionmanager_napi") { | |||
| 31 | "${ability_runtime_innerkits_path}/error_utils:ability_runtime_error_util", | 31 | "${ability_runtime_innerkits_path}/error_utils:ability_runtime_error_util", |
| 32 | "${ability_runtime_innerkits_path}/runtime:runtime", | 32 | "${ability_runtime_innerkits_path}/runtime:runtime", |
| 33 | "${ability_runtime_napi_path}/inner/napi_common:napi_common", | 33 | "${ability_runtime_napi_path}/inner/napi_common:napi_common", |
| 34 | + "${ability_runtime_native_path}/ability/native:ability_business_error", | ||
| 34 | "${ability_runtime_native_path}/ability/native:abilitykit_native", | 35 | "${ability_runtime_native_path}/ability/native:abilitykit_native", |
| 35 | ] | 36 | ] |
| 36 | 37 | ||
| @@ -24,6 +24,7 @@ | |||
| 24 | 24 | ||
| 25 | 25 | ||
| 26 | 26 | ||
| 27 | + | ||
| 27 | 28 | ||
| 28 | 29 | ||
| 29 | 30 | ||
| @@ -66,7 +67,8 @@ static void ResolveGrantUriPermissionTask(napi_env env, NapiAsyncTask &task, int | |||
| 66 | task.Reject(env, CreateJsErrorByNativeErr(env, errCode, "ohos.permission.PROXY_AUTHORIZATION_URI")); | 67 | task.Reject(env, CreateJsErrorByNativeErr(env, errCode, "ohos.permission.PROXY_AUTHORIZATION_URI")); |
| 67 | return; | 68 | return; |
| 68 | } | 69 | } |
| 69 | - task.Reject(env, CreateJsError(env, AbilityErrorCode::ERROR_CODE_INNER)); | 70 | + task.Reject(env, CreateJsError(env, static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), |
| 71 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GRANT_URI_PERMISSION_FAILED))); | ||
| 70 | return; | 72 | return; |
| 71 | } | 73 | } |
| 72 | 74 | ||
| @@ -84,7 +86,8 @@ static void ResolveGrantUriPermissionWithAppIndexTask(napi_env env, NapiAsyncTas | |||
| 84 | task.Reject(env, CreateJsErrorByNativeErr(env, errCode, "ohos.permission.PROXY_AUTHORIZATION_URI")); | 86 | task.Reject(env, CreateJsErrorByNativeErr(env, errCode, "ohos.permission.PROXY_AUTHORIZATION_URI")); |
| 85 | return; | 87 | return; |
| 86 | } | 88 | } |
| 87 | - task.Reject(env, CreateJsError(env, AbilityErrorCode::ERROR_CODE_INNER)); | 89 | + task.Reject(env, CreateJsError(env, static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), |
| 90 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GRANT_URI_PERMISSION_FAILED))); | ||
| 88 | return; | 91 | return; |
| 89 | } | 92 | } |
| 90 | 93 | ||
| @@ -100,7 +103,8 @@ static void ResolveRevokeUriPermissionTask(napi_env env, NapiAsyncTask &task, in | |||
| 100 | task.Reject(env, CreateJsErrorByNativeErr(env, errCode)); | 103 | task.Reject(env, CreateJsErrorByNativeErr(env, errCode)); |
| 101 | return; | 104 | return; |
| 102 | } | 105 | } |
| 103 | - task.Reject(env, CreateJsError(env, AbilityErrorCode::ERROR_CODE_INNER)); | 106 | + task.Reject(env, CreateJsError(env, static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), |
| 107 | + GetInnerErrorMsg(AbilityInnerErrorMsg::REVOKE_URI_PERMISSION_FAILED))); | ||
| 104 | return; | 108 | return; |
| 105 | } | 109 | } |
| 106 | 110 | ||
| @@ -117,7 +121,8 @@ static void ResolveRevokeUriPermissionWithAppIndexTask(napi_env env, NapiAsyncTa | |||
| 117 | task.Reject(env, CreateJsErrorByNativeErr(env, errCode)); | 121 | task.Reject(env, CreateJsErrorByNativeErr(env, errCode)); |
| 118 | return; | 122 | return; |
| 119 | } | 123 | } |
| 120 | - task.Reject(env, CreateJsError(env, AbilityErrorCode::ERROR_CODE_INNER)); | 124 | + task.Reject(env, CreateJsError(env, static_cast<int32_t>(AbilityErrorCode::ERROR_CODE_INNER), |
| 125 | + GetInnerErrorMsg(AbilityInnerErrorMsg::REVOKE_URI_PERMISSION_FAILED))); | ||
| 121 | return; | 126 | return; |
| 122 | } | 127 | } |
| 123 | 128 | ||
| @@ -129,7 +134,8 @@ static void ResolveGrantUriPermissionByKeyAsCallerTask(napi_env env, NapiAsyncTa | |||
| 129 | task.ResolveWithNoError(env, CreateJsUndefined(env)); | 134 | task.ResolveWithNoError(env, CreateJsUndefined(env)); |
| 130 | return; | 135 | return; |
| 131 | } | 136 | } |
| 132 | - task.Reject(env, CreateJsErrorByNativeErr(env, errCode, "ohos.permission.GRANT_URI_PERMISSION_AS_CALLER")); | 137 | + task.Reject(env, CreateJsErrorByNativeErr(env, errCode, "ohos.permission.GRANT_URI_PERMISSION_AS_CALLER", |
| 138 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GRANT_URI_PERMISSION_AS_CALLER_FAILED))); | ||
| 133 | return; | 139 | return; |
| 134 | } | 140 | } |
| 135 | 141 | ||
| @@ -141,7 +147,8 @@ static void ResolveGrantUriPermissionByKeyTask(napi_env env, NapiAsyncTask &task | |||
| 141 | task.ResolveWithNoError(env, CreateJsUndefined(env)); | 147 | task.ResolveWithNoError(env, CreateJsUndefined(env)); |
| 142 | return; | 148 | return; |
| 143 | } | 149 | } |
| 144 | - task.Reject(env, CreateJsErrorByNativeErr(env, errCode, "")); | 150 | + task.Reject(env, CreateJsErrorByNativeErr(env, errCode, "", |
| 151 | + GetInnerErrorMsg(AbilityInnerErrorMsg::GRANT_URI_PERMISSION_BY_KEY_FAILED))); | ||
| 145 | return; | 152 | return; |
| 146 | } | 153 | } |
| 147 | 154 | ||
| @@ -300,6 +300,24 @@ constexpr const char* ERROR_MSG_TERMINATE_MISSION_FAILED = | |||
| 300 | "Internal error. Failed to terminate the mission. Try again later."; | 300 | "Internal error. Failed to terminate the mission. Try again later."; |
| 301 | constexpr const char* ERROR_MSG_SET_KEEP_ALIVE_FAILED = | 301 | constexpr const char* ERROR_MSG_SET_KEEP_ALIVE_FAILED = |
| 302 | "Internal error. Failed to set the keep-alive status. Try again later."; | 302 | "Internal error. Failed to set the keep-alive status. Try again later."; |
| 303 | +constexpr const char* ERROR_MSG_GRANT_URI_PERMISSION_FAILED = | ||
| 304 | + "Internal error. Failed to grant URI permission. Try again later."; | ||
| 305 | +constexpr const char* ERROR_MSG_GRANT_URI_PERMISSION_BY_KEY_FAILED = | ||
| 306 | + "Internal error. Failed to grant URI permission by key. Try again later."; | ||
| 307 | +constexpr const char* ERROR_MSG_GRANT_URI_PERMISSION_AS_CALLER_FAILED = | ||
| 308 | + "Internal error. Failed to grant URI permission as caller. Try again later."; | ||
| 309 | +constexpr const char* ERROR_MSG_REVOKE_URI_PERMISSION_FAILED = | ||
| 310 | + "Internal error. Failed to revoke URI permission. Try again later."; | ||
| 311 | +constexpr const char* ERROR_MSG_GET_ABILITY_RUNNING_INFOS_FAILED = | ||
| 312 | + "Internal error. Failed to get ability running information. Try again later."; | ||
| 313 | +constexpr const char* ERROR_MSG_GET_TOP_ABILITY_FAILED = | ||
| 314 | + "Internal error. Failed to get the top ability. Try again later."; | ||
| 315 | +constexpr const char* ERROR_MSG_ACQUIRE_SHARE_DATA_FAILED = | ||
| 316 | + "Internal error. Failed to acquire share data. Try again later."; | ||
| 317 | +constexpr const char* ERROR_MSG_GET_DIALOG_SESSION_INFO_FAILED = | ||
| 318 | + "Internal error. Failed to get dialog session information. Try again later."; | ||
| 319 | +constexpr const char* ERROR_MSG_SEND_DIALOG_RESULT_FAILED = | ||
| 320 | + "Internal error. Failed to send the dialog result. Try again later."; | ||
| 303 | 321 | ||
| 304 | // follow ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST of appexecfwk_errors.h in bundle_framework | 322 | // follow ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST of appexecfwk_errors.h in bundle_framework |
| 305 | constexpr int32_t ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST = 8521220; | 323 | constexpr int32_t ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST = 8521220; |
| @@ -626,6 +644,15 @@ static std::unordered_map<AbilityInnerErrorMsg, const char*> INNER_ERROR_MSG_BY_ | |||
| 626 | {AbilityInnerErrorMsg::QUERY_KEEP_ALIVE_BUNDLES_FAILED, ERROR_MSG_QUERY_KEEP_ALIVE_BUNDLES_FAILED}, | 644 | {AbilityInnerErrorMsg::QUERY_KEEP_ALIVE_BUNDLES_FAILED, ERROR_MSG_QUERY_KEEP_ALIVE_BUNDLES_FAILED}, |
| 627 | {AbilityInnerErrorMsg::TERMINATE_MISSION_FAILED, ERROR_MSG_TERMINATE_MISSION_FAILED}, | 645 | {AbilityInnerErrorMsg::TERMINATE_MISSION_FAILED, ERROR_MSG_TERMINATE_MISSION_FAILED}, |
| 628 | {AbilityInnerErrorMsg::SET_KEEP_ALIVE_FAILED, ERROR_MSG_SET_KEEP_ALIVE_FAILED}, | 646 | {AbilityInnerErrorMsg::SET_KEEP_ALIVE_FAILED, ERROR_MSG_SET_KEEP_ALIVE_FAILED}, |
| 647 | + {AbilityInnerErrorMsg::GRANT_URI_PERMISSION_FAILED, ERROR_MSG_GRANT_URI_PERMISSION_FAILED}, | ||
| 648 | + {AbilityInnerErrorMsg::GRANT_URI_PERMISSION_BY_KEY_FAILED, ERROR_MSG_GRANT_URI_PERMISSION_BY_KEY_FAILED}, | ||
| 649 | + {AbilityInnerErrorMsg::GRANT_URI_PERMISSION_AS_CALLER_FAILED, ERROR_MSG_GRANT_URI_PERMISSION_AS_CALLER_FAILED}, | ||
| 650 | + {AbilityInnerErrorMsg::REVOKE_URI_PERMISSION_FAILED, ERROR_MSG_REVOKE_URI_PERMISSION_FAILED}, | ||
| 651 | + {AbilityInnerErrorMsg::GET_ABILITY_RUNNING_INFOS_FAILED, ERROR_MSG_GET_ABILITY_RUNNING_INFOS_FAILED}, | ||
| 652 | + {AbilityInnerErrorMsg::GET_TOP_ABILITY_FAILED, ERROR_MSG_GET_TOP_ABILITY_FAILED}, | ||
| 653 | + {AbilityInnerErrorMsg::ACQUIRE_SHARE_DATA_FAILED, ERROR_MSG_ACQUIRE_SHARE_DATA_FAILED}, | ||
| 654 | + {AbilityInnerErrorMsg::GET_DIALOG_SESSION_INFO_FAILED, ERROR_MSG_GET_DIALOG_SESSION_INFO_FAILED}, | ||
| 655 | + {AbilityInnerErrorMsg::SEND_DIALOG_RESULT_FAILED, ERROR_MSG_SEND_DIALOG_RESULT_FAILED}, | ||
| 629 | }; | 656 | }; |
| 630 | } | 657 | } |
| 631 | 658 | ||
| @@ -371,6 +371,15 @@ enum class AbilityInnerErrorMsg { | |||
| 371 | QUERY_KEEP_ALIVE_BUNDLES_FAILED, | 371 | QUERY_KEEP_ALIVE_BUNDLES_FAILED, |
| 372 | TERMINATE_MISSION_FAILED, | 372 | TERMINATE_MISSION_FAILED, |
| 373 | SET_KEEP_ALIVE_FAILED, | 373 | SET_KEEP_ALIVE_FAILED, |
| 374 | + GRANT_URI_PERMISSION_FAILED, | ||
| 375 | + GRANT_URI_PERMISSION_BY_KEY_FAILED, | ||
| 376 | + GRANT_URI_PERMISSION_AS_CALLER_FAILED, | ||
| 377 | + REVOKE_URI_PERMISSION_FAILED, | ||
| 378 | + GET_ABILITY_RUNNING_INFOS_FAILED, | ||
| 379 | + GET_TOP_ABILITY_FAILED, | ||
| 380 | + ACQUIRE_SHARE_DATA_FAILED, | ||
| 381 | + GET_DIALOG_SESSION_INFO_FAILED, | ||
| 382 | + SEND_DIALOG_RESULT_FAILED, | ||
| 374 | }; | 383 | }; |
| 375 | 384 | ||
| 376 | enum class AgentManagerErrorOperation { | 385 | enum class AgentManagerErrorOperation { |