!1417 无障碍堆内存优化

Merge pull request !1417 from taojuncun/bug_0918_01
This commit is contained in:
openharmony_ci 2024-09-19 03:06:07 +00:00 committed by Gitee
commit 21307eab87
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 54 additions and 74 deletions

View File

@ -409,55 +409,4 @@ struct NAccessibilityErrMsg {
NAccessibilityErrorCode errCode;
std::string message;
};
const std::map<OHOS::Accessibility::RetError, NAccessibilityErrMsg> ACCESSIBILITY_JS_TO_ERROR_CODE_MAP {
{OHOS::Accessibility::RetError::RET_OK,
{NAccessibilityErrorCode::ACCESSIBILITY_OK, ""}},
{OHOS::Accessibility::RetError::RET_ERR_FAILED,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_INVALID_PARAM,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_INVALID_PARAM, ERROR_MESSAGE_PARAMETER_ERROR}},
{OHOS::Accessibility::RetError::RET_ERR_NULLPTR,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_IPC_FAILED,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_SAMGR,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_NO_PERMISSION,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_NO_PERMISSION, ERROR_MESSAGE_NO_PERMISSION}},
{OHOS::Accessibility::RetError::RET_ERR_TIME_OUT,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_REGISTER_EXIST,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_NO_REGISTER,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_CONNECTION_EXIST,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_TARGET_ABILITY_ALREADY_ENABLED,
ERROR_MESSAGE_TARGET_ABILITY_ALREADY_ENABLED}},
{OHOS::Accessibility::RetError::RET_ERR_NO_CONNECTION,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_NO_WINDOW_CONNECTION,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_NO_CAPABILITY,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_NO_RIGHT, ERROR_MESSAGE_NO_RIGHT}},
{OHOS::Accessibility::RetError::RET_ERR_INVALID_ELEMENT_INFO_FROM_ACE,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_PERFORM_ACTION_FAILED_BY_ACE,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_NO_INJECTOR,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY, ERROR_MESSAGE_SYSTEM_ABNORMALITY}},
{OHOS::Accessibility::RetError::RET_ERR_NOT_INSTALLED,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_ERROR_EXTENSION_NAME,
ERROR_MESSAGE_INVALID_BUNDLE_NAME_OR_ABILITY_NAME}},
{OHOS::Accessibility::RetError::RET_ERR_NOT_ENABLED,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_ERROR_EXTENSION_NAME,
ERROR_MESSAGE_INVALID_BUNDLE_NAME_OR_ABILITY_NAME}},
{OHOS::Accessibility::RetError::RET_ERR_PROPERTY_NOT_EXIST,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_PROPERTY_NOT_EXIST, ERROR_MESSAGE_PROPERTY_NOT_EXIST}},
{OHOS::Accessibility::RetError::RET_ERR_ACTION_NOT_SUPPORT,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_ACTION_NOT_SUPPORT, ERROR_MESSAGE_ACTION_NOT_SUPPORT}},
{OHOS::Accessibility::RetError::RET_ERR_NOT_SYSTEM_APP,
{NAccessibilityErrorCode::ACCESSIBILITY_ERROR_NOT_SYSTEM_APP, ERROR_MESSAGE_NOT_SYSTEM_APP}},
};
#endif // ACCESSIBILITY_DEFINE_H

View File

@ -336,9 +336,8 @@ private:
task.Resolve(env, napiElementInfo);
} else {
HILOG_ERROR("Get focus elementInfo failed. ret: %{public}d", *ret);
task.Reject(env, CreateJsError(env,
static_cast<int32_t>(ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).errCode),
ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).message));
NAccessibilityErrMsg errMsg = QueryRetMsg(*ret);
task.Reject(env, CreateJsError(env, static_cast<int32_t>(errMsg.errCode), errMsg.message));
}
};
@ -418,9 +417,8 @@ private:
task.Resolve(env, napiElementInfo);
} else {
HILOG_ERROR("Get root elementInfo failed. ret : %{public}d", *ret);
task.Reject(env, CreateJsError(env,
static_cast<int32_t>(ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).errCode),
ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).message));
NAccessibilityErrMsg errMsg = QueryRetMsg(*ret);
task.Reject(env, CreateJsError(env, static_cast<int32_t>(errMsg.errCode), errMsg.message));
}
};
@ -493,9 +491,8 @@ private:
task.Resolve(env, napiWindowInfos);
} else {
HILOG_ERROR("Get windowInfos failed.");
task.Reject(env, CreateJsError(env,
static_cast<int32_t>(ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).errCode),
ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).message));
NAccessibilityErrMsg errMsg = QueryRetMsg(*ret);
task.Reject(env, CreateJsError(env, static_cast<int32_t>(errMsg.errCode), errMsg.message));
}
};
@ -535,9 +532,8 @@ private:
task.Resolve(env, napiWindowInfos);
} else {
HILOG_ERROR("Get windowInfosByDisplayId failed.");
task.Reject(env, CreateJsError(env,
static_cast<int32_t>(ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).errCode),
ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).message));
NAccessibilityErrMsg errMsg = QueryRetMsg(*ret);
task.Reject(env, CreateJsError(env, static_cast<int32_t>(errMsg.errCode), errMsg.message));
}
};
@ -636,9 +632,8 @@ private:
task.Resolve(env, CreateJsUndefined(env));
} else {
HILOG_ERROR("Gesture inject failed. ret: %{public}d.", *ret);
task.Reject(env, CreateJsError(env,
static_cast<int32_t>(ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).errCode),
ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).message));
NAccessibilityErrMsg errMsg = QueryRetMsg(*ret);
task.Reject(env, CreateJsError(env, static_cast<int32_t>(errMsg.errCode), errMsg.message));
}
};
@ -684,9 +679,8 @@ private:
task.Resolve(env, CreateJsUndefined(env));
} else {
HILOG_ERROR("startAbility failed. ret: %{public}d.", *ret);
task.Reject(env, CreateJsError(env,
static_cast<int32_t>(ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).errCode),
ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(*ret).message));
NAccessibilityErrMsg errMsg = QueryRetMsg(*ret);
task.Reject(env, CreateJsError(env, static_cast<int32_t>(errMsg.errCode), errMsg.message));
}
};

View File

@ -179,11 +179,48 @@ bool CheckJsFunction(napi_env env, napi_value args)
NAccessibilityErrMsg QueryRetMsg(OHOS::Accessibility::RetError errorCode)
{
auto iter = ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.find(errorCode);
if (iter != ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.end()) {
return iter->second;
} else {
return ACCESSIBILITY_JS_TO_ERROR_CODE_MAP.at(OHOS::Accessibility::RetError::RET_ERR_FAILED);
switch (errorCode) {
case OHOS::Accessibility::RetError::RET_OK:
return { NAccessibilityErrorCode::ACCESSIBILITY_OK, "" };
case OHOS::Accessibility::RetError::RET_ERR_FAILED:
case OHOS::Accessibility::RetError::RET_ERR_NULLPTR:
case OHOS::Accessibility::RetError::RET_ERR_IPC_FAILED:
case OHOS::Accessibility::RetError::RET_ERR_SAMGR:
case OHOS::Accessibility::RetError::RET_ERR_TIME_OUT:
case OHOS::Accessibility::RetError::RET_ERR_REGISTER_EXIST:
case OHOS::Accessibility::RetError::RET_ERR_NO_REGISTER:
case OHOS::Accessibility::RetError::RET_ERR_NO_CONNECTION:
case OHOS::Accessibility::RetError::RET_ERR_NO_WINDOW_CONNECTION:
case OHOS::Accessibility::RetError::RET_ERR_INVALID_ELEMENT_INFO_FROM_ACE:
case OHOS::Accessibility::RetError::RET_ERR_PERFORM_ACTION_FAILED_BY_ACE:
case OHOS::Accessibility::RetError::RET_ERR_NO_INJECTOR:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY,
ERROR_MESSAGE_SYSTEM_ABNORMALITY };
case OHOS::Accessibility::RetError::RET_ERR_INVALID_PARAM:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_INVALID_PARAM, ERROR_MESSAGE_PARAMETER_ERROR };
case OHOS::Accessibility::RetError::RET_ERR_NO_PERMISSION:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_NO_PERMISSION, ERROR_MESSAGE_NO_PERMISSION };
case OHOS::Accessibility::RetError::RET_ERR_CONNECTION_EXIST:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_TARGET_ABILITY_ALREADY_ENABLED,
ERROR_MESSAGE_TARGET_ABILITY_ALREADY_ENABLED };
case OHOS::Accessibility::RetError::RET_ERR_NO_CAPABILITY:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_NO_RIGHT, ERROR_MESSAGE_NO_RIGHT };
case OHOS::Accessibility::RetError::RET_ERR_NOT_INSTALLED:
case OHOS::Accessibility::RetError::RET_ERR_NOT_ENABLED:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_ERROR_EXTENSION_NAME,
ERROR_MESSAGE_INVALID_BUNDLE_NAME_OR_ABILITY_NAME};
case OHOS::Accessibility::RetError::RET_ERR_PROPERTY_NOT_EXIST:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_PROPERTY_NOT_EXIST,
ERROR_MESSAGE_PROPERTY_NOT_EXIST };
case OHOS::Accessibility::RetError::RET_ERR_ACTION_NOT_SUPPORT:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_ACTION_NOT_SUPPORT,
ERROR_MESSAGE_ACTION_NOT_SUPPORT };
case OHOS::Accessibility::RetError::RET_ERR_NOT_SYSTEM_APP:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_NOT_SYSTEM_APP,
ERROR_MESSAGE_NOT_SYSTEM_APP };
default:
return { NAccessibilityErrorCode::ACCESSIBILITY_ERROR_SYSTEM_ABNORMALITY,
ERROR_MESSAGE_SYSTEM_ABNORMALITY };
}
}