diff --git a/frameworks/native/ability/ability_runtime/ability_context_impl.cpp b/frameworks/native/ability/ability_runtime/ability_context_impl.cpp index 44ae430b719005da265448ddee8bd6490d7efe23..fc559f043e6de6d7f1cda16634b4710cce52de2d 100644 --- a/frameworks/native/ability/ability_runtime/ability_context_impl.cpp +++ b/frameworks/native/ability/ability_runtime/ability_context_impl.cpp @@ -1397,38 +1397,41 @@ void AbilityContextImpl::OnRequestFailure(const std::string &requestId, const Ap TAG_LOGE(AAFwkTag::CONTEXT, "requestId=%{public}s not exist", requestId.c_str()); } - -ErrCode AbilityContextImpl::StartAppServiceExtensionAbility(const AAFwk::Want& want) +ErrCode AbilityContextImpl::StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, + AppExecFwk::ExtensionAbilityType extensionType) { - TAG_LOGI(AAFwkTag::CONTEXT, "StartAppServiceExtensionAbility, name:%{public}s %{public}s", + TAG_LOGI(AAFwkTag::CONTEXT, "StartExtensionAbilityWithExtensionType, name:%{public}s %{public}s", want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str()); ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->StartExtensionAbility( - want, token_, DEFAULT_INVAL_VALUE, AppExecFwk::ExtensionAbilityType::APP_SERVICE); + want, token_, DEFAULT_INVAL_VALUE, extensionType); if (err != ERR_OK) { TAG_LOGE(AAFwkTag::CONTEXT, "failed:%{public}d", err); } return err; } -ErrCode AbilityContextImpl::StopAppServiceExtensionAbility(const AAFwk::Want& want) + +ErrCode AbilityContextImpl::StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, + AppExecFwk::ExtensionAbilityType extensionType) { - TAG_LOGD(AAFwkTag::CONTEXT, "StopAppServiceExtensionAbility, name:%{public}s %{public}s", + TAG_LOGD(AAFwkTag::CONTEXT, "StopExtensionAbilityWithExtensionType, name:%{public}s %{public}s", want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str()); ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->StopExtensionAbility( - want, token_, DEFAULT_INVAL_VALUE, AppExecFwk::ExtensionAbilityType::APP_SERVICE); + want, token_, DEFAULT_INVAL_VALUE, extensionType); if (err != ERR_OK) { TAG_LOGE(AAFwkTag::CONTEXT, "failed %{public}d", err); } return err; } -ErrCode AbilityContextImpl::ConnectAppServiceExtensionAbility(const AAFwk::Want& want, - const sptr& connectCallback) +ErrCode AbilityContextImpl::ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - TAG_LOGI(AAFwkTag::CONTEXT, "ConnectAppServiceExtensionAbility, caller:%{public}s, target:%{public}s", + TAG_LOGI(AAFwkTag::CONTEXT, "ConnectExtensionAbilityWithExtensionType, caller:%{public}s, target:%{public}s", abilityInfo_ == nullptr ? "" : abilityInfo_->name.c_str(), want.GetElement().GetAbilityName().c_str()); - ErrCode ret = ConnectionManager::GetInstance().ConnectAppServiceExtensionAbility(token_, want, connectCallback); + ErrCode ret = ConnectionManager::GetInstance() + .ConnectExtensionAbilityWithExtensionType(token_, want, connectCallback, extensionType); if (ret != ERR_OK) { TAG_LOGE(AAFwkTag::CONTEXT, "failed %{public}d", ret); } diff --git a/frameworks/native/ability/ability_runtime/connection_manager.cpp b/frameworks/native/ability/ability_runtime/connection_manager.cpp index 27a7b227a8602ebc3fab5bc9e83a57a34263e9e0..de6b2b77735fe35bf50c789f31481ce6aee00b30 100644 --- a/frameworks/native/ability/ability_runtime/connection_manager.cpp +++ b/frameworks/native/ability/ability_runtime/connection_manager.cpp @@ -55,11 +55,11 @@ ErrCode ConnectionManager::ConnectUIServiceExtensionAbility(const sptr& connectCaller, - const AAFwk::Want& want, const sptr& connectCallback) +ErrCode ConnectionManager::ConnectExtensionAbilityWithExtensionType(const sptr& connectCaller, + const AAFwk::Want& want, const sptr& connectCallback, + AppExecFwk::ExtensionAbilityType extensionType) { - return ConnectAbilityInner(connectCaller, want, AAFwk::DEFAULT_INVAL_VALUE, connectCallback, - AppExecFwk::ExtensionAbilityType::APP_SERVICE); + return ConnectAbilityInner(connectCaller, want, AAFwk::DEFAULT_INVAL_VALUE, connectCallback, extensionType); } ErrCode ConnectionManager::ConnectAbilityInner(const sptr& connectCaller, const AAFwk::Want& want, diff --git a/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp b/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp index d4918c94e3cb1728490fe1a5292c661163869acc..ae6916ad2c03a7e05fb2b7034a46eec933062516 100644 --- a/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp +++ b/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp @@ -106,8 +106,9 @@ constexpr const char* ERROR_MSG_EXTENSION_START_ABILITY_CONTROLLED = constexpr const char* ERROR_MSG_NOT_HOOK = "Only DelegatorAbility is allowed to call this API, and only once."; constexpr const char* ERROR_MSG_FROM_WINDOW = "An error occurred during the interaction between the ability and window."; -constexpr const char* ERROR_TARGET_NOT_IN_APP_IDENTIFIER_ALLOW_LIST = "The target not in app identifier allow list."; -constexpr const char* ERROR_TARGET_NOT_STARTED = "The target has not been started yet."; +constexpr const char* ERROR_TARGET_NOT_IN_APP_IDENTIFIER_ALLOW_LIST = + "The caller is not in the appIdentifierAllowList of the target appliaction."; +constexpr const char* ERROR_TARGET_NOT_STARTED = "The target service has not been started yet."; constexpr const char* ERROR_MSG_CALLER_NOT_ATOMIC_SERVICE = "The caller is not an atomic service."; constexpr const char* ERROR_MSG_NOT_UI_ABILITY_CONTEXT = diff --git a/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp b/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp index c5bf91d6987a0aadbc5322607313ac35776fc824..8ed977abfb06232e540952dd0dc890b1df8d91f2 100644 --- a/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp +++ b/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp @@ -1482,14 +1482,7 @@ napi_value JsAbilityContext::StartExtensionAbilityCommon(napi_env env, NapiCallb *innerErrCode = static_cast(AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT); return; } - if (extensionType == AppExecFwk::ExtensionAbilityType::SERVICE) { - *innerErrCode = context->StartServiceExtensionAbility(want); - } else if (extensionType == AppExecFwk::ExtensionAbilityType::APP_SERVICE) { - *innerErrCode = context->StartAppServiceExtensionAbility(want); - } else { - TAG_LOGE(AAFwkTag::CONTEXT, "extensionType error, type: %{public}d", - static_cast(extensionType)); - } + *innerErrCode = context->StartExtensionAbilityWithExtensionType(want, extensionType); }; NapiAsyncTask::CompleteCallback complete = @@ -1586,14 +1579,7 @@ napi_value JsAbilityContext::StopExtensionAbilityCommon(napi_env env, NapiCallba *innerErrCode = static_cast(AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT); return; } - if (extensionType == AppExecFwk::ExtensionAbilityType::SERVICE) { - *innerErrCode = context->StopServiceExtensionAbility(want); - } else if (extensionType == AppExecFwk::ExtensionAbilityType::APP_SERVICE) { - *innerErrCode = context->StopAppServiceExtensionAbility(want); - } else { - TAG_LOGE(AAFwkTag::CONTEXT, "extensionType error, type: %{public}d", - static_cast(extensionType)); - } + *innerErrCode = context->StopExtensionAbilityWithExtensionType(want, extensionType); }; NapiAsyncTask::CompleteCallback complete = [innerErrCode](napi_env env, NapiAsyncTask& task, int32_t status) { @@ -1809,14 +1795,7 @@ napi_value JsAbilityContext::ConnectExtensionAbilityCommon(napi_env env, NapiCal } TAG_LOGD(AAFwkTag::CONTEXT, "connectAbility: %{public}d, extensionType: type: %{public}d", static_cast(connectId), static_cast(extensionType)); - if (extensionType == AppExecFwk::ExtensionAbilityType::SERVICE) { - *innerErrCode = context->ConnectAbility(want, connection); - } else if (extensionType == AppExecFwk::ExtensionAbilityType::APP_SERVICE) { - *innerErrCode = context->ConnectAppServiceExtensionAbility(want, connection); - } else { - TAG_LOGE(AAFwkTag::CONTEXT, "extensionType error, type: %{public}d", - static_cast(extensionType)); - } + *innerErrCode = context->ConnectExtensionAbilityWithExtensionType(want, connection, extensionType); }; NapiAsyncTask::CompleteCallback complete = [connection, connectId, innerErrCode](napi_env env, NapiAsyncTask& task, int32_t status) { diff --git a/interfaces/kits/native/ability/ability_runtime/ability_context.h b/interfaces/kits/native/ability/ability_runtime/ability_context.h index e5a2eb076d08e79c2a9b0f33e2303879f8045ea0..9f73b1b4a4871c9ec2f7ba326c43a633392457cc 100644 --- a/interfaces/kits/native/ability/ability_runtime/ability_context.h +++ b/interfaces/kits/native/ability/ability_runtime/ability_context.h @@ -215,23 +215,25 @@ public: virtual ErrCode ConnectUIServiceExtensionAbility(const AAFwk::Want& want, const sptr& connectCallback) = 0; - virtual ErrCode StartAppServiceExtensionAbility(const AAFwk::Want &want) + virtual ErrCode StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, + AppExecFwk::ExtensionAbilityType extensionType) { return 0; } - virtual ErrCode StopAppServiceExtensionAbility(const AAFwk::Want& want) + virtual ErrCode StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, + AppExecFwk::ExtensionAbilityType extensionType) { return 0; } /** - * @brief Connects the current ability to an appService ability using the AbilityInfo.AbilityType.SERVICE template.f + * @brief Connects the current ability to an extension ability using the AbilityInfo.AbilityType.SERVICE template. * * @param want Indicates the want containing information about the ability to connect * @param connectCallback Indicates the callback object when the target ability is connected. * @return True means success and false means failure */ - virtual ErrCode ConnectAppServiceExtensionAbility(const AAFwk::Want& want, - const sptr& connectCallback) + virtual ErrCode ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType) { return 0; } diff --git a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h index 2425e49b44aca8535b6bcab1a648bff5414c644c..c5a1323ecaec08f21cecc9ec334f907063921357 100644 --- a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h +++ b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h @@ -364,10 +364,12 @@ public: void OnRequestFailure(const std::string &requestId, const AppExecFwk::ElementName &element, const std::string &message, int32_t resultCode = 0) override; - ErrCode StartAppServiceExtensionAbility(const Want &want) override; - ErrCode StopAppServiceExtensionAbility(const Want& want) override; - ErrCode ConnectAppServiceExtensionAbility(const AAFwk::Want& want, - const sptr& connectCallback) override; + ErrCode StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, + AppExecFwk::ExtensionAbilityType extensionType) override; + ErrCode StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, + AppExecFwk::ExtensionAbilityType extensionType) override; + ErrCode ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType) override; ErrCode SetOnNewWantSkipScenarios(int32_t scenarios) override; ErrCode AddCompletionHandlerForAtomicService(const std::string &requestId, OnAtomicRequestSuccess onRequestSucc, diff --git a/interfaces/kits/native/ability/ability_runtime/connection_manager.h b/interfaces/kits/native/ability/ability_runtime/connection_manager.h index 438ea931bfa5073af4fad38a973cbba5599b659e..e9945670c2349a9592be684bd42941f4024781da 100644 --- a/interfaces/kits/native/ability/ability_runtime/connection_manager.h +++ b/interfaces/kits/native/ability/ability_runtime/connection_manager.h @@ -152,10 +152,12 @@ public: * @param connectCaller The connection caller. * @param connectReceiver The connection receiver. * @param connectCallback The connection callback. + * @param extensiontype The type of the extension ability. * @return Returns the result of connecting appService ability connection. */ - ErrCode ConnectAppServiceExtensionAbility(const sptr& connectCaller, - const AAFwk::Want& want, const sptr& connectCallback); + ErrCode ConnectExtensionAbilityWithExtensionType(const sptr& connectCaller, + const AAFwk::Want& want, const sptr& connectCallback, + AppExecFwk::ExtensionAbilityType extensiontype); /** * @brief disconnect ability connection. diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index d013717be00e8c617acc7b5de1e7877f6a570a4d..f35af244e131057a5b3cd41df183fd6e276f8df1 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -10705,6 +10705,10 @@ AAFwk::PermissionVerification::VerificationInfo AbilityManagerService::CreateVer int32_t AbilityManagerService::CheckCallAppServiceExtensionPermission(const AbilityRequest &abilityRequest, std::shared_ptr targetService, bool isFromConnect) { + int32_t result = CheckCallServiceExtensionPermission(abilityRequest); + if (result != ERR_OK) { + return result; + } if (AAFwk::PermissionVerification::GetInstance()->IsSACall()) { return ERR_OK; } diff --git a/test/unittest/ability_extension_base_test/ability_extension_base_test.cpp b/test/unittest/ability_extension_base_test/ability_extension_base_test.cpp index ed5ea24f72e410302a6bdcc735c45c0d368faaff..007cb2baac35e03ac70e386caced299f45864a47 100644 --- a/test/unittest/ability_extension_base_test/ability_extension_base_test.cpp +++ b/test/unittest/ability_extension_base_test/ability_extension_base_test.cpp @@ -251,40 +251,28 @@ HWTEST_F(AbilityExtensionBaseTest, OnExtensionAbilityRequestFailure_0100, TestSi { TAG_LOGI(AAFwkTag::TEST, "OnExtensionAbilityRequestFailure start"); + std::shared_ptr info = std::make_shared(); + auto record = std::make_shared(info, nullptr, nullptr, 0); + std::shared_ptr application = std::make_shared(); + std::shared_ptr handler = std::make_shared(nullptr); + sptr token = new AppExecFwk::MockAbilityToken(); + + std::shared_ptr contextImpl = std::make_shared(); + std::shared_ptr applicationContext = + AbilityRuntime::ApplicationContext::GetInstance(); + applicationContext->AttachContextImpl(contextImpl); + application->SetApplicationContext(applicationContext); + ExtensionBase extensionBase; + extensionBase.Init(record, application, handler, token); + std::string requestId = "test_request_id"; AppExecFwk::ElementName element; element.SetBundleName("com.example.test"); element.SetAbilityName("TestAbility"); - std::string message = "test error message"; - - // 使用派生类测试虚方法 - class TestExtensionBase : public ExtensionBase { - public: - void OnExtensionAbilityRequestFailure(const std::string &requestId, const AppExecFwk::ElementName &element, - const std::string &message, int32_t resultCode = 0) override - { - lastRequestId_ = requestId; - lastElement_ = element; - lastMessage_ = message; - called_ = true; - } - - std::string lastRequestId_; - AppExecFwk::ElementName lastElement_; - std::string lastMessage_; - bool called_ = false; - }; - - TestExtensionBase testExtension; - testExtension.OnExtensionAbilityRequestFailure(requestId, element, message); - - EXPECT_TRUE(testExtension.called_); - EXPECT_EQ(testExtension.lastRequestId_, requestId); - EXPECT_EQ(testExtension.lastElement_.GetBundleName(), element.GetBundleName()); - EXPECT_EQ(testExtension.lastElement_.GetAbilityName(), element.GetAbilityName()); - EXPECT_EQ(testExtension.lastMessage_, message); + std::string message = "test success message"; + extensionBase.OnExtensionAbilityRequestFailure(requestId, element, message, 0); TAG_LOGI(AAFwkTag::TEST, "OnExtensionAbilityRequestFailure end"); } @@ -296,41 +284,27 @@ HWTEST_F(AbilityExtensionBaseTest, OnExtensionAbilityRequestFailure_0100, TestSi HWTEST_F(AbilityExtensionBaseTest, OnExtensionAbilityRequestSuccess_0100, TestSize.Level1) { TAG_LOGI(AAFwkTag::TEST, "OnExtensionAbilityRequestSuccess start"); + std::shared_ptr info = std::make_shared(); + auto record = std::make_shared(info, nullptr, nullptr, 0); + std::shared_ptr application = std::make_shared(); + std::shared_ptr handler = std::make_shared(nullptr); + sptr token = new AppExecFwk::MockAbilityToken(); + + std::shared_ptr contextImpl = std::make_shared(); + std::shared_ptr applicationContext = + AbilityRuntime::ApplicationContext::GetInstance(); + applicationContext->AttachContextImpl(contextImpl); + application->SetApplicationContext(applicationContext); ExtensionBase extensionBase; + extensionBase.Init(record, application, handler, token); + std::string requestId = "test_request_id"; AppExecFwk::ElementName element; element.SetBundleName("com.example.test"); element.SetAbilityName("TestAbility"); std::string message = "test success message"; - - // 使用派生类测试虚方法 - class TestExtensionBase : public ExtensionBase { - public: - void OnExtensionAbilityRequestSuccess(const std::string &requestId, const AppExecFwk::ElementName &element, - const std::string &message) override - { - lastRequestId_ = requestId; - lastElement_ = element; - lastMessage_ = message; - called_ = true; - } - - std::string lastRequestId_; - AppExecFwk::ElementName lastElement_; - std::string lastMessage_; - bool called_ = false; - }; - - TestExtensionBase testExtension; - testExtension.OnExtensionAbilityRequestSuccess(requestId, element, message); - - EXPECT_TRUE(testExtension.called_); - EXPECT_EQ(testExtension.lastRequestId_, requestId); - EXPECT_EQ(testExtension.lastElement_.GetBundleName(), element.GetBundleName()); - EXPECT_EQ(testExtension.lastElement_.GetAbilityName(), element.GetAbilityName()); - EXPECT_EQ(testExtension.lastMessage_, message); - + extensionBase.OnExtensionAbilityRequestSuccess(requestId, element, message); TAG_LOGI(AAFwkTag::TEST, "OnExtensionAbilityRequestSuccess end"); } diff --git a/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_impl_test.cpp b/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_impl_test.cpp index 26d9efb993d852d23c6a3bcd549667011c4b8e56..487c6f0240298ced96d6681a718addfcde218a13 100644 --- a/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_impl_test.cpp +++ b/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_impl_test.cpp @@ -2373,27 +2373,29 @@ HWTEST_F(AbilityContextImplTest, SetOnNewWantSkipScenariose_0100, Function | Med } /** - * @tc.number: Ability_Context_Impl_ConnectAppServiceExtensionAbility_0100 - * @tc.name: ConnectAppServiceExtensionAbility - * @tc.desc: Verify that function ConnectAppServiceExtensionAbility. + * @tc.number: Ability_Context_Impl_ConnectExtensionAbilityWithExtensionType_0100 + * @tc.name: ConnectExtensionAbilityWithExtensionType + * @tc.desc: Verify that function ConnectExtensionAbilityWithExtensionType. */ -HWTEST_F(AbilityContextImplTest, ConnectAppServiceExtensionAbility_0100, Function | MediumTest | Level1) +HWTEST_F(AbilityContextImplTest, ConnectExtensionAbilityWithExtensionType_0100, Function | MediumTest | Level1) { AAFwk::Want want; - bool ret = context_->ConnectAppServiceExtensionAbility(want, nullptr); - EXPECT_NE(ret, ERR_OK); + auto result = context_->ConnectExtensionAbilityWithExtensionType(want, nullptr, + AppExecFwk::ExtensionAbilityType::APP_SERVICE); + EXPECT_NE(result, ERR_OK); } /** - * @tc.number: Ability_Context_Impl_ConnectAppServiceExtensionAbility_0100 - * @tc.name: ConnectAppServiceExtensionAbility - * @tc.desc: Verify that function ConnectAppServiceExtensionAbility. + * @tc.number: Ability_Context_Impl_ConnectExtensionAbilityWithExtensionType_0100 + * @tc.name: ConnectExtensionAbilityWithExtensionType + * @tc.desc: Verify that function ConnectExtensionAbilityWithExtensionType. */ -HWTEST_F(AbilityContextImplTest, ConnectAppServiceExtensionAbility_0200, Function | MediumTest | Level1) +HWTEST_F(AbilityContextImplTest, ConnectExtensionAbilityWithExtensionType_0200, Function | MediumTest | Level1) { AAFwk::Want want; sptr connectCallback; - bool ret = context_->ConnectAppServiceExtensionAbility(want, connectCallback); + auto ret = context_->ConnectExtensionAbilityWithExtensionType(want, connectCallback, + AppExecFwk::ExtensionAbilityType::SERVICE); EXPECT_NE(ret, ERR_OK); } diff --git a/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_test.cpp b/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_test.cpp index 3b84608bb249dc3e32ac7964d6911e5ac105401f..3a130c3857300139cd4e44bc84bd48da045ed529 100644 --- a/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_test.cpp +++ b/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_test.cpp @@ -309,16 +309,18 @@ public: { return ERR_OK; } - virtual ErrCode StartAppServiceExtensionAbility(const AAFwk::Want &want) + virtual ErrCode StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, + AppExecFwk::ExtensionAbilityType extensionType) { return ERR_OK; } - virtual ErrCode StopAppServiceExtensionAbility(const AAFwk::Want& want) + virtual ErrCode StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, + AppExecFwk::ExtensionAbilityType extensionType) { return ERR_OK; } - virtual ErrCode ConnectAppServiceExtensionAbility(const AAFwk::Want& want, - const sptr& connectCallback) + virtual ErrCode ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType) { return ERR_OK; }