已关闭
Signed-off-by: sora_skyline <zhouyuan90@huawei.com> #19699
Signed-off-by: sora_skyline <zhouyuan90@huawei.com> #19699
已关闭
zhouyuan创建于 6月26日关闭于 1 天前
11 个文件变更+136-53
Mframeworks/ets/ani/ability_manager/src/ets_ability_manager.cpp+34-31
@@ -67,8 +67,7 @@ constexpr int32_t ERR_FAILURE = -1;
67const std::string MAX_UINT64_VALUE = "18446744073709551615";67const std::string MAX_UINT64_VALUE = "18446744073709551615";
68std::shared_ptr<AppExecFwk::EventHandler> mainHandler_ = nullptr;68std::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 
347void EtsAbilityManager::IsEmbeddedOpenAllowedCheck(ani_env *env, ani_object contextObj)348void 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}
Mframeworks/ets/ani/dialog_session/BUILD.gn+1-0
@@ -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 ]
Mframeworks/ets/ani/dialog_session/src/ets_dialog_session.cpp+12-3
@@ -15,6 +15,7 @@
15 15 
16#include "ets_dialog_session.h"16#include "ets_dialog_session.h"
17 17 
18+#include "ability_business_error.h"
18#include "ability_manager_client.h"19#include "ability_manager_client.h"
19#include "ani_common_ability_state_data.h"20#include "ani_common_ability_state_data.h"
20#include "ani_common_util.h"21#include "ani_common_util.h"
@@ -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 
67static ani_object GetDialogSessionInfo(ani_env *env, ani_string etsDialogSessionId)69static 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#endif // SUPPORT_SCREEN92#endif // SUPPORT_SCREEN
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 
94void EtsDialogSessionInit(ani_env *env)103void 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 AbilityRuntime157} // namespace AbilityRuntime
149-} // namespace OHOS158+} // namespace OHOS
Mframeworks/ets/ani/uri_permission_manager/src/ets_uri_perm_mgr.cpp+9-5
@@ -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 AbilityRuntime299} // namespace AbilityRuntime
296-} // namespace OHOS300+} // namespace OHOS
Mframeworks/js/napi/ability_manager/js_ability_manager.cpp+18-6
@@ -387,7 +387,8 @@ private:
387#ifdef ENABLE_ERRCODE387#ifdef ENABLE_ERRCODE
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#else392#else
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#ifdef ENABLE_ERRCOE533#ifdef ENABLE_ERRCOE
526- task.ResolveWithNoError(env, CreateJsElementName(env, elementName));534+ task.ResolveWithNoError(env, elementNameObj);
527#else535#else
528- task.Resolve(env, CreateJsElementName(env, elementName));536+ task.Resolve(env, elementNameObj);
529#endif537#endif
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 }
Mframeworks/js/napi/js_dialog_session/BUILD.gn+1-0
@@ -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) {
Mframeworks/js/napi/js_dialog_session/js_dialog_session.cpp+11-2
@@ -15,6 +15,7 @@
15 15 
16#include "js_dialog_session.h"16#include "js_dialog_session.h"
17 17 
18+#include "ability_business_error.h"
18#include "ability_manager_client.h"19#include "ability_manager_client.h"
19#include "hilog_tag_wrapper.h"20#include "hilog_tag_wrapper.h"
20#include "js_error_utils.h"21#include "js_error_utils.h"
@@ -78,7 +79,14 @@ private:
78 return CreateJsUndefined(env);79 return CreateJsUndefined(env);
79 }80 }
80#endif // SUPPORT_SCREEN81#endif // SUPPORT_SCREEN
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 }
Mframeworks/js/napi/uri_permission/BUILD.gn+1-0
@@ -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 
Mframeworks/js/napi/uri_permission/js_uri_perm_mgr.cpp+13-6
@@ -24,6 +24,7 @@
24#endif24#endif
25#include "ipc_skeleton.h"25#include "ipc_skeleton.h"
26#include "js_error_utils.h"26#include "js_error_utils.h"
27+#include "js_runtime_utils.h"
27#include "napi_common_util.h"28#include "napi_common_util.h"
28#include "parameters.h"29#include "parameters.h"
29#include "tokenid_kit.h"30#include "tokenid_kit.h"
@@ -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 
Mframeworks/native/ability/native/ability_business_error/ability_business_error.cpp+27-0
@@ -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.";
301constexpr const char* ERROR_MSG_SET_KEEP_ALIVE_FAILED =301constexpr 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_framework322// follow ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST of appexecfwk_errors.h in bundle_framework
305constexpr int32_t ERR_BUNDLE_MANAGER_BUNDLE_NOT_EXIST = 8521220;323constexpr 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 
Minterfaces/kits/native/ability/native/ability_business_error/ability_business_error.h+9-0
@@ -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 
376enum class AgentManagerErrorOperation {385enum class AgentManagerErrorOperation {