From affbfcac2e164e5a11e2c6f662e422984b03d7db Mon Sep 17 00:00:00 2001 From: zhoujun62 Date: Wed, 25 May 2022 15:18:31 +0800 Subject: [PATCH] IssueNo:#I591G0:add moduleName to locate one ability Description:add moduleName to locate one ability Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: zhoujun62 Change-Id: Ifcbf6302bbeb6cfc37754ffcaec6ad2e40b203b0 --- .../native/want/src/element_name.cpp | 5 ---- .../inner_api/want/include/element_name.h | 1 - .../services/src/form_acquire_connection.cpp | 3 ++- .../include/connection_manager.h | 9 +++++-- .../src/connection_manager.cpp | 9 ++++--- .../ability/native/include/ability_context.h | 4 ++- .../ability/native/include/ability_impl.h | 3 ++- .../ability/native/src/ability_context.cpp | 7 +++-- .../kits/ability/native/src/ability_impl.cpp | 6 ++--- .../ability_runtime/js_ability_context.cpp | 6 +++-- .../ability/native/src/ability_thread.cpp | 3 ++- .../distributed/continuation_handler.cpp | 6 ++--- .../src/js_service_extension_context.cpp | 6 +++-- .../test/unittest/ability_context_test.cpp | 4 +-- .../appkit/native/app/src/context_deal.cpp | 1 + .../ability_manager/include/caller_info.h | 1 + .../feature_ability/js_feature_ability.cpp | 2 +- services/abilitymgr/include/ability_util.h | 8 +++--- .../src/ability_connect_manager.cpp | 11 ++++---- .../src/ability_manager_service.cpp | 6 +++++ services/abilitymgr/src/call_record.cpp | 11 +++++--- services/abilitymgr/src/caller_info.cpp | 5 ++++ services/abilitymgr/src/connection_record.cpp | 6 +++-- .../abilitymgr/src/free_install_manager.cpp | 10 +++---- services/abilitymgr/src/mission_list.cpp | 3 ++- .../abilitymgr/src/mission_list_manager.cpp | 5 ++-- services/appmgr/include/app_running_record.h | 2 +- services/appmgr/src/app_mgr_service_inner.cpp | 3 ++- services/appmgr/src/app_running_record.cpp | 5 +++- .../ams_app_running_record_test.cpp | 22 +++++++-------- ...app_running_processes_info_module_test.cpp | 5 ++-- .../ams_app_running_record_module_test.cpp | 5 ++-- .../ams_app_service_flow_module_test.cpp | 4 +-- .../on_new_want_module_test.cpp | 27 ++++++++++--------- 34 files changed, 130 insertions(+), 84 deletions(-) diff --git a/ability_base/frameworks/native/want/src/element_name.cpp b/ability_base/frameworks/native/want/src/element_name.cpp index 584cc709126..cae5e7942f0 100644 --- a/ability_base/frameworks/native/want/src/element_name.cpp +++ b/ability_base/frameworks/native/want/src/element_name.cpp @@ -80,11 +80,6 @@ ElementName::~ElementName() } std::string ElementName::GetURI() const -{ - return deviceId_ + "/" + bundleName_ + "/" + abilityName_; -} - -std::string ElementName::GetElementNameURI() const { return deviceId_ + "/" + bundleName_ + "/" + moduleName_ + "/" + abilityName_; } diff --git a/ability_base/interfaces/inner_api/want/include/element_name.h b/ability_base/interfaces/inner_api/want/include/element_name.h index 0c1912c6287..387bee70afd 100644 --- a/ability_base/interfaces/inner_api/want/include/element_name.h +++ b/ability_base/interfaces/inner_api/want/include/element_name.h @@ -33,7 +33,6 @@ public: ~ElementName(); std::string GetURI() const; - std::string GetElementNameURI() const; bool operator==(const ElementName &element) const; diff --git a/form_runtime/services/src/form_acquire_connection.cpp b/form_runtime/services/src/form_acquire_connection.cpp index 58788db94aa..f7b86c36010 100644 --- a/form_runtime/services/src/form_acquire_connection.cpp +++ b/form_runtime/services/src/form_acquire_connection.cpp @@ -65,7 +65,8 @@ void FormAcquireConnection::OnAbilityConnectDone( want.SetParam(Constants::ACQUIRE_TYPE, Constants::ACQUIRE_TYPE_CREATE_FORM); } want.SetParam(Constants::FORM_CONNECT_ID, this->GetConnectId()); - want.SetElementName(info_.GetDeviceId(), info_.GetProviderBundleName(), info_.GetAbilityName()); + want.SetElementName(info_.GetDeviceId(), info_.GetProviderBundleName(), + info_.GetAbilityName(), info_.GetModuleName()); HILOG_INFO("%{public}s , deviceId: %{public}s, bundleName: %{public}s, abilityName: %{public}s.", __func__, info_.GetDeviceId().c_str(), info_.GetProviderBundleName().c_str(), info_.GetAbilityName().c_str()); diff --git a/frameworks/kits/ability/ability_runtime/include/connection_manager.h b/frameworks/kits/ability/ability_runtime/include/connection_manager.h index cd7e8e0ac50..2dc67352f58 100644 --- a/frameworks/kits/ability/ability_runtime/include/connection_manager.h +++ b/frameworks/kits/ability/ability_runtime/include/connection_manager.h @@ -51,10 +51,15 @@ struct ConnectionInfo { } if (connectCaller == that.connectCaller && connectReceiver.GetBundleName() == that.connectReceiver.GetBundleName() && - connectReceiver.GetAbilityName() < that.connectReceiver.GetAbilityName()) { + connectReceiver.GetModuleName() < that.connectReceiver.GetModuleName()) { + return true; + } + if (connectCaller == that.connectCaller && + connectReceiver.GetBundleName() == that.connectReceiver.GetBundleName() && + connectReceiver.GetModuleName() == that.connectReceiver.GetModuleName() && + connectReceiver.GetAbilityName() == that.connectReceiver.GetAbilityName()) { return true; } - return false; } }; diff --git a/frameworks/kits/ability/ability_runtime/src/connection_manager.cpp b/frameworks/kits/ability/ability_runtime/src/connection_manager.cpp index a0b5fb5b373..69dcbaa938a 100644 --- a/frameworks/kits/ability/ability_runtime/src/connection_manager.cpp +++ b/frameworks/kits/ability/ability_runtime/src/connection_manager.cpp @@ -60,7 +60,8 @@ ErrCode ConnectionManager::ConnectAbilityInner(const sptr &connec std::vector>>::value_type &obj) { return connectCaller == obj.first.connectCaller && connectReceiver.GetBundleName() == obj.first.connectReceiver.GetBundleName() && - connectReceiver.GetAbilityName() == obj.first.connectReceiver.GetAbilityName(); + connectReceiver.GetAbilityName() == obj.first.connectReceiver.GetAbilityName() && + connectReceiver.GetModuleName() == obj.first.connectReceiver.GetModuleName(); }); if (item != abilityConnections_.end()) { std::vector> callbacks = item->second; @@ -109,7 +110,8 @@ ErrCode ConnectionManager::DisconnectAbility(const sptr &connectC const std::map>>::value_type &obj) { return connectCaller == obj.first.connectCaller && connectReceiver.GetBundleName() == obj.first.connectReceiver.GetBundleName() && - connectReceiver.GetAbilityName() == obj.first.connectReceiver.GetAbilityName(); + connectReceiver.GetAbilityName() == obj.first.connectReceiver.GetAbilityName() && + connectReceiver.GetModuleName() == obj.first.connectReceiver.GetModuleName(); }); if (item != abilityConnections_.end()) { std::vector> callbacks = item->second; @@ -228,7 +230,8 @@ bool ConnectionManager::IsConnectReceiverEqual(const AppExecFwk::ElementName &co const AppExecFwk::ElementName &connectReceiverOther) { return connectReceiver.GetBundleName() == connectReceiverOther.GetBundleName() && - connectReceiver.GetAbilityName() == connectReceiverOther.GetAbilityName(); + connectReceiver.GetAbilityName() == connectReceiverOther.GetAbilityName() && + connectReceiver.GetModuleName() == connectReceiverOther.GetModuleName(); } ErrCode ConnectionManager::HandleCallbackTimeOut(const sptr &connectCaller, const AAFwk::Want &want, diff --git a/frameworks/kits/ability/native/include/ability_context.h b/frameworks/kits/ability/native/include/ability_context.h index b48d0669525..56a60aa6d2b 100644 --- a/frameworks/kits/ability/native/include/ability_context.h +++ b/frameworks/kits/ability/native/include/ability_context.h @@ -442,7 +442,8 @@ public: * * @param abilityName abilityName of the calling ability */ - void SetCallingContext(const std::string &deviceId, const std::string &bundleName, const std::string &abilityName); + void SetCallingContext(const std::string &deviceId, const std::string &bundleName, + const std::string &abilityName, const std::string &moduleName = ""); /** * @brief Obtains information about the caller of this ability. @@ -587,6 +588,7 @@ protected: std::string callingDeviceId_; std::string callingBundleName_; std::string callingAbilityName_; + std::string callingModuleName_; std::map, sptr> abilityConnectionMap_; private: diff --git a/frameworks/kits/ability/native/include/ability_impl.h b/frameworks/kits/ability/native/include/ability_impl.h index ba6a91159f7..25203ae0281 100644 --- a/frameworks/kits/ability/native/include/ability_impl.h +++ b/frameworks/kits/ability/native/include/ability_impl.h @@ -248,7 +248,8 @@ public: * * @param deviceId abilityName of the calling ability */ - void SetCallingContext(const std::string &deviceId, const std::string &bundleName, const std::string &abilityName); + void SetCallingContext(const std::string &deviceId, const std::string &bundleName, + const std::string &abilityName, const std::string &moduleName); /** * @brief Converts the given uri that refer to the Data ability into a normalized URI. A normalized URI can be used diff --git a/frameworks/kits/ability/native/src/ability_context.cpp b/frameworks/kits/ability/native/src/ability_context.cpp index 89f5c50618e..068fc72ba3e 100644 --- a/frameworks/kits/ability/native/src/ability_context.cpp +++ b/frameworks/kits/ability/native/src/ability_context.cpp @@ -145,6 +145,7 @@ std::shared_ptr AbilityContext::GetElementName() elementName->SetAbilityName(info->name); elementName->SetBundleName(info->bundleName); elementName->SetDeviceID(info->deviceId); + elementName->SetModuleName(info->moduleName); HILOG_INFO("%{public}s end.", __func__); return elementName; } @@ -161,6 +162,7 @@ std::shared_ptr AbilityContext::GetCallingAbility() elementName->SetAbilityName(callingAbilityName_); elementName->SetBundleName(callingBundleName_); elementName->SetDeviceID(callingDeviceId_); + elementName->SetModuleName(callingModuleName_); HILOG_INFO("%{public}s end.", __func__); return elementName; } @@ -439,12 +441,13 @@ bool AbilityContext::DeleteFile(const std::string &fileName) return ContextContainer::DeleteFile(fileName); } -void AbilityContext::SetCallingContext( - const std::string &deviceId, const std::string &bundleName, const std::string &abilityName) +void AbilityContext::SetCallingContext(const std::string &deviceId, const std::string &bundleName, + const std::string &abilityName, const std::string &moduleName) { callingDeviceId_ = deviceId; callingBundleName_ = bundleName; callingAbilityName_ = abilityName; + callingModuleName_ = moduleName; } Uri AbilityContext::GetCaller() diff --git a/frameworks/kits/ability/native/src/ability_impl.cpp b/frameworks/kits/ability/native/src/ability_impl.cpp index a881cb3b285..c1730a7e561 100644 --- a/frameworks/kits/ability/native/src/ability_impl.cpp +++ b/frameworks/kits/ability/native/src/ability_impl.cpp @@ -605,11 +605,11 @@ PacMap &AbilityImpl::GetRestoreData() * * @param deviceId abilityName of the calling ability */ -void AbilityImpl::SetCallingContext( - const std::string &deviceId, const std::string &bundleName, const std::string &abilityName) +void AbilityImpl::SetCallingContext(const std::string &deviceId, const std::string &bundleName, + const std::string &abilityName, const std::string &moduleName) { if (ability_ != nullptr) { - ability_->SetCallingContext(deviceId, bundleName, abilityName); + ability_->SetCallingContext(deviceId, bundleName, abilityName, moduleName); } } diff --git a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp index 1889ed66221..1a696f9472f 100644 --- a/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp +++ b/frameworks/kits/ability/native/src/ability_runtime/js_ability_context.cpp @@ -1246,11 +1246,13 @@ void JSAbilityConnection::HandleOnAbilityDisconnectDone(const AppExecFwk::Elemen HILOG_INFO("OnAbilityDisconnectDone abilityConnects_.size:%{public}zu", abilityConnects_.size()); std::string bundleName = element.GetBundleName(); std::string abilityName = element.GetAbilityName(); + std::string moduleName = element.GetModuleName(); auto item = std::find_if(abilityConnects_.begin(), abilityConnects_.end(), - [bundleName, abilityName] ( + [bundleName, abilityName, moduleName] ( const std::map>::value_type &obj) { return (bundleName == obj.first.want.GetBundle()) && - (abilityName == obj.first.want.GetElement().GetAbilityName()); + (abilityName == obj.first.want.GetElement().GetAbilityName()) && + (moduleName == obj.first.want.GetElement().GetModuleName()); }); if (item != abilityConnects_.end()) { // match bundlename && abilityname diff --git a/frameworks/kits/ability/native/src/ability_thread.cpp b/frameworks/kits/ability/native/src/ability_thread.cpp index e185681f669..1a2b1ed83b9 100644 --- a/frameworks/kits/ability/native/src/ability_thread.cpp +++ b/frameworks/kits/ability/native/src/ability_thread.cpp @@ -446,7 +446,8 @@ void AbilityThread::HandleAbilityTransaction(const Want &want, const LifeCycleSt abilityImpl_->SetCallingContext(lifeCycleStateInfo.caller.deviceId, lifeCycleStateInfo.caller.bundleName, - lifeCycleStateInfo.caller.abilityName); + lifeCycleStateInfo.caller.abilityName, + lifeCycleStateInfo.caller.moduleName); abilityImpl_->HandleAbilityTransaction(want, lifeCycleStateInfo); HILOG_INFO("Handle ability transaction end."); } diff --git a/frameworks/kits/ability/native/src/continuation/distributed/continuation_handler.cpp b/frameworks/kits/ability/native/src/continuation/distributed/continuation_handler.cpp index ff37a81ca01..8c327893cbe 100644 --- a/frameworks/kits/ability/native/src/continuation/distributed/continuation_handler.cpp +++ b/frameworks/kits/ability/native/src/continuation/distributed/continuation_handler.cpp @@ -67,7 +67,7 @@ bool ContinuationHandler::HandleStartContinuationWithStack(const sptrbundleName, abilityInfo_->name); + want.SetElementName(deviceId, abilityInfo_->bundleName, abilityInfo_->name, abilityInfo_->moduleName); int result = AAFwk::AbilityManagerClient::GetInstance()->StartContinuation(want, token, status); if (result != ERR_OK) { @@ -118,7 +118,7 @@ bool ContinuationHandler::HandleStartContinuation(const sptr &tok } Want want = SetWantParams(wantParams); - want.SetElementName(deviceId, abilityInfo_->bundleName, abilityInfo_->name); + want.SetElementName(deviceId, abilityInfo_->bundleName, abilityInfo_->name, abilityInfo_->moduleName); int result = AAFwk::AbilityManagerClient::GetInstance()->StartContinuation(want, token, 0); if (result != 0) { @@ -260,7 +260,7 @@ Want ContinuationHandler::SetWantParams(const WantParams &wantParams) HILOG_INFO("SetWantParams: Reversible."); want.AddFlags(Want::FLAG_ABILITY_CONTINUATION_REVERSIBLE); } - ElementName element("", abilityInfo_->bundleName, abilityInfo_->name); + ElementName element("", abilityInfo_->bundleName, abilityInfo_->name, abilityInfo_->moduleName); want.SetElement(element); HILOG_INFO("%{public}s called end", __func__); return want; diff --git a/frameworks/kits/ability/native/src/js_service_extension_context.cpp b/frameworks/kits/ability/native/src/js_service_extension_context.cpp index 1085ba61e57..d05f76ca9d0 100644 --- a/frameworks/kits/ability/native/src/js_service_extension_context.cpp +++ b/frameworks/kits/ability/native/src/js_service_extension_context.cpp @@ -825,12 +825,14 @@ void JSServiceExtensionConnection::HandleOnAbilityDisconnectDone(const AppExecFw HILOG_INFO("OnAbilityDisconnectDone connects_.size:%{public}zu", connects_.size()); std::string bundleName = element.GetBundleName(); std::string abilityName = element.GetAbilityName(); + std::string moduleName = element.GetModuleName(); auto item = std::find_if(connects_.begin(), connects_.end(), - [bundleName, abilityName]( + [bundleName, abilityName, moduleName]( const std::map>::value_type &obj) { return (bundleName == obj.first.want.GetBundle()) && - (abilityName == obj.first.want.GetElement().GetAbilityName()); + (abilityName == obj.first.want.GetElement().GetAbilityName()) && + (moduleName == obj.first.want.GetElement().GetModuleName()); }); if (item != connects_.end()) { // match bundlename && abilityname diff --git a/frameworks/kits/ability/native/test/unittest/ability_context_test.cpp b/frameworks/kits/ability/native/test/unittest/ability_context_test.cpp index 3708ebb5097..39efa80b8ca 100644 --- a/frameworks/kits/ability/native/test/unittest/ability_context_test.cpp +++ b/frameworks/kits/ability/native/test/unittest/ability_context_test.cpp @@ -130,7 +130,7 @@ HWTEST_F(AbilityContextTest, AaFwk_AbilityContext_GetCallingAbility_0100, Functi ability->Init(abilityInfo, nullptr, handler, nullptr); ability->StartAbilityForResult(want, -1); - ability->SetCallingContext("", "", std::string("App.System.Test.AbilityName_0127")); + ability->SetCallingContext("", "", std::string("App.System.Test.AbilityName_0127"), ""); std::shared_ptr elementNameTest = ability->GetCallingAbility(); std::string abilityName; if (elementNameTest != nullptr) { @@ -455,7 +455,7 @@ HWTEST_F(AbilityContextTest, AaFwk_AbilityContext_GetCallingBundle_0200, Functio std::shared_ptr ability = std::make_shared(); ability->Init(abilityInfo, nullptr, handler, nullptr); ability->StartAbilityForResult(want, -1); - ability->SetCallingContext("", "BundleName", ""); + ability->SetCallingContext("", "BundleName", "", ""); EXPECT_STREQ(bundleName.c_str(), ability->GetCallingBundle().c_str()); } diff --git a/frameworks/kits/appkit/native/app/src/context_deal.cpp b/frameworks/kits/appkit/native/app/src/context_deal.cpp index 96706287891..8a815ae0999 100644 --- a/frameworks/kits/appkit/native/app/src/context_deal.cpp +++ b/frameworks/kits/appkit/native/app/src/context_deal.cpp @@ -717,6 +717,7 @@ std::shared_ptr ContextDeal::GetHapModuleInfo() ElementName name; name.SetBundleName(GetBundleName()); name.SetAbilityName(abilityInfo_->name); + name.SetModuleName(abilityInfo_->moduleName); want.SetElement(name); std::vector abilityInfos; bool isSuc = ptr->QueryAbilityInfos(want, abilityInfos); diff --git a/interfaces/innerkits/ability_manager/include/caller_info.h b/interfaces/innerkits/ability_manager/include/caller_info.h index f877b3c94a7..b165326012f 100644 --- a/interfaces/innerkits/ability_manager/include/caller_info.h +++ b/interfaces/innerkits/ability_manager/include/caller_info.h @@ -31,6 +31,7 @@ struct CallerInfo : public Parcelable { std::string deviceId; std::string bundleName; std::string abilityName; + std::string moduleName; bool ReadFromParcel(Parcel &parcel); virtual bool Marshalling(Parcel &parcel) const override; diff --git a/interfaces/kits/napi/aafwk/feature_ability/js_feature_ability.cpp b/interfaces/kits/napi/aafwk/feature_ability/js_feature_ability.cpp index 49941a37b7f..12d9a67c702 100644 --- a/interfaces/kits/napi/aafwk/feature_ability/js_feature_ability.cpp +++ b/interfaces/kits/napi/aafwk/feature_ability/js_feature_ability.cpp @@ -362,7 +362,7 @@ Want JsFeatureAbility::GetWant(DistributeReqParam &requestParam) if (!requestParam.GetBundleName().empty() && !requestParam.GetAbilityName().empty()) { want.SetElementName(requestParam.GetNetworkId(), requestParam.GetBundleName(), - requestParam.GetAbilityName()); + requestParam.GetAbilityName(), requestParam.GetModuleName()); } else { want.SetAction(requestParam.GetAction()); for (auto entity : requestParam.GetEntities()) { diff --git a/services/abilitymgr/include/ability_util.h b/services/abilitymgr/include/ability_util.h index 12cc9d80d97..bae48ab909e 100644 --- a/services/abilitymgr/include/ability_util.h +++ b/services/abilitymgr/include/ability_util.h @@ -108,10 +108,12 @@ static constexpr unsigned int CHANGE_CONFIG_DENSITY = 0x00000010; return false; } -[[maybe_unused]] static std::string ConvertBundleNameSingleton(const std::string &bundleName, const std::string &name) +[[maybe_unused]] static std::string ConvertBundleNameSingleton(const std::string &bundleName, const std::string &name, + const std::string &moduleName) { - std::string strName = - AbilityConfig::MISSION_NAME_MARK_HEAD + bundleName + AbilityConfig::MISSION_NAME_SEPARATOR + name; + std::string strName = AbilityConfig::MISSION_NAME_MARK_HEAD + bundleName + + AbilityConfig::MISSION_NAME_SEPARATOR + moduleName + + AbilityConfig::MISSION_NAME_SEPARATOR + name; return strName; } diff --git a/services/abilitymgr/src/ability_connect_manager.cpp b/services/abilitymgr/src/ability_connect_manager.cpp index fb17aa856fc..79be8636572 100644 --- a/services/abilitymgr/src/ability_connect_manager.cpp +++ b/services/abilitymgr/src/ability_connect_manager.cpp @@ -97,7 +97,8 @@ int AbilityConnectManager::TerminateAbilityResult(const sptr &tok int AbilityConnectManager::StartAbilityLocked(const AbilityRequest &abilityRequest) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - HILOG_INFO("Start ability locked, ability_name: %{public}s", abilityRequest.want.GetElement().GetURI().c_str()); + HILOG_INFO("Start ability locked, ability_name: %{public}s", + abilityRequest.want.GetElement().GetURI().c_str()); std::shared_ptr targetService; bool isLoadedAbility = false; @@ -173,8 +174,8 @@ int AbilityConnectManager::StopServiceAbilityLocked(const AbilityRequest &abilit { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); HILOG_INFO("Stop service ability locked."); - AppExecFwk::ElementName element( - abilityRequest.abilityInfo.deviceId, abilityRequest.abilityInfo.bundleName, abilityRequest.abilityInfo.name); + AppExecFwk::ElementName element(abilityRequest.abilityInfo.deviceId, abilityRequest.abilityInfo.bundleName, + abilityRequest.abilityInfo.name, abilityRequest.abilityInfo.moduleName); auto abilityRecord = GetServiceRecordByElementName(element.GetURI()); CHECK_POINTER_AND_RETURN(abilityRecord, ERR_INVALID_VALUE); @@ -202,8 +203,8 @@ void AbilityConnectManager::GetOrCreateServiceRecord(const AbilityRequest &abili const bool isCreatedByConnect, std::shared_ptr &targetService, bool &isLoadedAbility) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - AppExecFwk::ElementName element( - abilityRequest.abilityInfo.deviceId, abilityRequest.abilityInfo.bundleName, abilityRequest.abilityInfo.name); + AppExecFwk::ElementName element(abilityRequest.abilityInfo.deviceId, abilityRequest.abilityInfo.bundleName, + abilityRequest.abilityInfo.name, abilityRequest.abilityInfo.moduleName); auto serviceMapIter = serviceMap_.find(element.GetURI()); if (serviceMapIter == serviceMap_.end()) { targetService = AbilityRecord::CreateAbilityRecord(abilityRequest); diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 0155f80a33a..6d2c3044c35 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -2489,6 +2489,9 @@ int AbilityManagerService::GenerateAbilityRequest( HILOG_DEBUG("GenerateAbilityRequest end, app name: %{public}s, bundle name: %{public}s, uid: %{public}d.", request.appInfo.name.c_str(), request.appInfo.bundleName.c_str(), request.uid); + HILOG_INFO("GenerateAbilityRequest, moduleName: %{public}s.", request.abilityInfo.moduleName.c_str()); + request.want.SetModuleName(request.abilityInfo.moduleName); + return ERR_OK; } @@ -2536,6 +2539,9 @@ int AbilityManagerService::GenerateExtensionAbilityRequest( HILOG_DEBUG("GenerateAbilityRequest end, app name: %{public}s, bundle name: %{public}s, uid: %{public}d.", request.appInfo.name.c_str(), request.appInfo.bundleName.c_str(), request.uid); + HILOG_INFO("GenerateExtensionAbilityRequest, moduleName: %{public}s.", request.abilityInfo.moduleName.c_str()); + request.want.SetModuleName(request.abilityInfo.moduleName); + return ERR_OK; } diff --git a/services/abilitymgr/src/call_record.cpp b/services/abilitymgr/src/call_record.cpp index 9c880f270e2..7de7a9e16d5 100644 --- a/services/abilitymgr/src/call_record.cpp +++ b/services/abilitymgr/src/call_record.cpp @@ -101,7 +101,8 @@ AppExecFwk::ElementName CallRecord::GetTargetServiceName() const std::shared_ptr tmpService = service_.lock(); if (tmpService) { const AppExecFwk::AbilityInfo &abilityInfo = tmpService->GetAbilityInfo(); - AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, abilityInfo.name); + AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, + abilityInfo.name, abilityInfo.moduleName); return element; } return AppExecFwk::ElementName(); @@ -122,7 +123,8 @@ bool CallRecord::SchedulerConnectDone() } const AppExecFwk::AbilityInfo &abilityInfo = tmpService->GetAbilityInfo(); - AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, abilityInfo.name); + AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, + abilityInfo.name, abilityInfo.moduleName); connCallback_->OnAbilityConnectDone(element, callRemoteObject_, ERR_OK); state_ = CallState::REQUESTED; @@ -141,7 +143,8 @@ bool CallRecord::SchedulerDisConnectDone() } const AppExecFwk::AbilityInfo &abilityInfo = tmpService->GetAbilityInfo(); - AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, abilityInfo.name); + AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, + abilityInfo.name, abilityInfo.moduleName); connCallback_->OnAbilityDisconnectDone(element, ERR_OK); return true; @@ -173,7 +176,7 @@ void CallRecord::Dump(std::vector &info) const if (abilityRecord) { AppExecFwk::ElementName element( abilityRecord->GetAbilityInfo().deviceId, abilityRecord->GetAbilityInfo().bundleName, - abilityRecord->GetAbilityInfo().name); + abilityRecord->GetAbilityInfo().name, abilityRecord->GetAbilityInfo().moduleName); tempstr += " uri [" + element.GetURI() + "]" + "\n"; } diff --git a/services/abilitymgr/src/caller_info.cpp b/services/abilitymgr/src/caller_info.cpp index a39a9843e2c..2b9e02c31e1 100644 --- a/services/abilitymgr/src/caller_info.cpp +++ b/services/abilitymgr/src/caller_info.cpp @@ -28,6 +28,7 @@ bool CallerInfo::ReadFromParcel(Parcel &parcel) deviceId = Str16ToStr8(parcel.ReadString16()); bundleName = Str16ToStr8(parcel.ReadString16()); abilityName = Str16ToStr8(parcel.ReadString16()); + moduleName = Str16ToStr8(parcel.ReadString16()); return true; } @@ -59,6 +60,10 @@ bool CallerInfo::Marshalling(Parcel &parcel) const if (!parcel.WriteString16(Str8ToStr16(abilityName))) { return false; } + // write moduleName + if (!parcel.WriteString16(Str8ToStr16(moduleName))) { + return false; + } return true; } diff --git a/services/abilitymgr/src/connection_record.cpp b/services/abilitymgr/src/connection_record.cpp index a83c6b509c4..c173b4303a9 100644 --- a/services/abilitymgr/src/connection_record.cpp +++ b/services/abilitymgr/src/connection_record.cpp @@ -120,7 +120,8 @@ void ConnectionRecord::CompleteConnect(int resultCode) targetService_->SetAbilityState(AbilityState::ACTIVE); } const AppExecFwk::AbilityInfo &abilityInfo = targetService_->GetAbilityInfo(); - AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, abilityInfo.name); + AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, + abilityInfo.name, abilityInfo.moduleName); auto remoteObject = targetService_->GetConnRemoteObject(); if (connCallback_) { connCallback_->OnAbilityConnectDone(element, remoteObject, resultCode); @@ -135,7 +136,8 @@ void ConnectionRecord::CompleteDisconnect(int resultCode, bool isDied) } CHECK_POINTER(targetService_); const AppExecFwk::AbilityInfo &abilityInfo = targetService_->GetAbilityInfo(); - AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, abilityInfo.name); + AppExecFwk::ElementName element(abilityInfo.deviceId, abilityInfo.bundleName, + abilityInfo.name, abilityInfo.moduleName); if (connCallback_) { connCallback_->OnAbilityDisconnectDone(element, isDied ? (resultCode - 1) : resultCode); } diff --git a/services/abilitymgr/src/free_install_manager.cpp b/services/abilitymgr/src/free_install_manager.cpp index eeabbe67974..94385c15d81 100644 --- a/services/abilitymgr/src/free_install_manager.cpp +++ b/services/abilitymgr/src/free_install_manager.cpp @@ -67,12 +67,12 @@ bool FreeInstallManager::IsTopAbility(const sptr &callerToken) } AppExecFwk::ElementName callerElementName = caller->GetWant().GetElement(); - std::string callerBundleName; - std::string callerAbilityName; - callerBundleName = callerElementName.GetBundleName(); - callerAbilityName = callerElementName.GetAbilityName(); + std::string callerBundleName = callerElementName.GetBundleName(); + std::string callerAbilityName = callerElementName.GetAbilityName(); + std::string callerModuleName = callerElementName.GetModuleName(); if (elementName.GetBundleName().compare(callerBundleName) == 0 && - elementName.GetAbilityName().compare(callerAbilityName) == 0) { + elementName.GetAbilityName().compare(callerAbilityName) == 0 && + elementName.GetModuleName().compare(callerModuleName) == 0) { HILOG_INFO("The ability is top ability."); return true; } diff --git a/services/abilitymgr/src/mission_list.cpp b/services/abilitymgr/src/mission_list.cpp index 110eca59050..566302ebd94 100644 --- a/services/abilitymgr/src/mission_list.cpp +++ b/services/abilitymgr/src/mission_list.cpp @@ -215,7 +215,8 @@ std::shared_ptr MissionList::GetAbilityRecordByName(const AppExec for (auto mission : missions_) { if (mission) { const AppExecFwk::AbilityInfo &abilityInfo = mission->GetAbilityRecord()->GetAbilityInfo(); - AppExecFwk::ElementName localElement(abilityInfo.deviceId, abilityInfo.bundleName, abilityInfo.name); + AppExecFwk::ElementName localElement(abilityInfo.deviceId, abilityInfo.bundleName, + abilityInfo.name, abilityInfo.moduleName); if (localElement == element) { return mission->GetAbilityRecord(); } diff --git a/services/abilitymgr/src/mission_list_manager.cpp b/services/abilitymgr/src/mission_list_manager.cpp index 2f9609ced08..b9008e3c351 100644 --- a/services/abilitymgr/src/mission_list_manager.cpp +++ b/services/abilitymgr/src/mission_list_manager.cpp @@ -339,7 +339,8 @@ void MissionListManager::GetTargetMissionAndAbility(const AbilityRequest &abilit // no reused mission, create a new one. bool isSingleton = abilityRequest.abilityInfo.launchMode == AppExecFwk::LaunchMode::SINGLETON; std::string missionName = isSingleton ? AbilityUtil::ConvertBundleNameSingleton( - abilityRequest.abilityInfo.bundleName, abilityRequest.abilityInfo.name) : abilityRequest.abilityInfo.bundleName; + abilityRequest.abilityInfo.bundleName, abilityRequest.abilityInfo.name, abilityRequest.abilityInfo.moduleName) : + abilityRequest.abilityInfo.bundleName; // try reuse mission info InnerMissionInfo info; @@ -483,7 +484,7 @@ std::shared_ptr MissionListManager::GetReusedMission(const AbilityReque std::shared_ptr reUsedMission = nullptr; std::string missionName = AbilityUtil::ConvertBundleNameSingleton(abilityRequest.abilityInfo.bundleName, - abilityRequest.abilityInfo.name); + abilityRequest.abilityInfo.name, abilityRequest.abilityInfo.moduleName); // find launcher first. if (abilityRequest.abilityInfo.applicationInfo.isLauncherApp) { diff --git a/services/appmgr/include/app_running_record.h b/services/appmgr/include/app_running_record.h index aac2ff39333..c8e9bf7dbd6 100644 --- a/services/appmgr/include/app_running_record.h +++ b/services/appmgr/include/app_running_record.h @@ -238,7 +238,7 @@ public: * @return the ability record. */ std::shared_ptr GetAbilityRunningRecord( - const std::string &abilityName, int32_t ownerUserId = -1) const; + const std::string &abilityName, const std::string &moduleName, int32_t ownerUserId = -1) const; std::shared_ptr GetAbilityRunningRecord(const int64_t eventId) const; diff --git a/services/appmgr/src/app_mgr_service_inner.cpp b/services/appmgr/src/app_mgr_service_inner.cpp index 5f92df429ea..840145d969f 100644 --- a/services/appmgr/src/app_mgr_service_inner.cpp +++ b/services/appmgr/src/app_mgr_service_inner.cpp @@ -1015,7 +1015,8 @@ void AppMgrServiceInner::StartAbility(const sptr &token, const sp if (want) { ownerUserId = want->GetIntParam(ABILITY_OWNER_USERID, -1); } - auto abilityRecord = appRecord->GetAbilityRunningRecord(abilityInfo->name, ownerUserId); + auto abilityRecord = appRecord->GetAbilityRunningRecord(abilityInfo->name, + abilityInfo->moduleName, ownerUserId); if (abilityRecord) { HILOG_WARN("same ability info in singleton launch mode, will not add ability"); return; diff --git a/services/appmgr/src/app_running_record.cpp b/services/appmgr/src/app_running_record.cpp index bc9fb54b196..ba03a19da45 100644 --- a/services/appmgr/src/app_running_record.cpp +++ b/services/appmgr/src/app_running_record.cpp @@ -237,11 +237,14 @@ sptr AppRunningRecord::GetApplicationClient() const } std::shared_ptr AppRunningRecord::GetAbilityRunningRecord( - const std::string &abilityName, int32_t ownerUserId) const + const std::string &abilityName, const std::string &moduleName, int32_t ownerUserId) const { HILOG_INFO("Get ability running record by ability name."); auto moduleRecordList = GetAllModuleRecord(); for (const auto &moduleRecord : moduleRecordList) { + if (!moduleName.empty() && moduleRecord->GetModuleName() != moduleName) { + continue; + } auto abilityRecord = moduleRecord->GetAbilityRunningRecord(abilityName, ownerUserId); if (abilityRecord) { return abilityRecord; diff --git a/services/appmgr/test/unittest/ams_app_running_record_test/ams_app_running_record_test.cpp b/services/appmgr/test/unittest/ams_app_running_record_test/ams_app_running_record_test.cpp index 7b9cffb5173..1290d22e742 100644 --- a/services/appmgr/test/unittest/ams_app_running_record_test/ams_app_running_record_test.cpp +++ b/services/appmgr/test/unittest/ams_app_running_record_test/ams_app_running_record_test.cpp @@ -766,7 +766,7 @@ HWTEST_F(AmsAppRunningRecordTest, LaunchAbilityForApp_001, TestSize.Level1) EXPECT_TRUE(service_ != nullptr); std::shared_ptr record = service_->CreateAppRunningRecord( GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); EXPECT_CALL(*mockAppSchedulerClient_, ScheduleLaunchApplication(_, _)).Times(1); @@ -809,7 +809,7 @@ HWTEST_F(AmsAppRunningRecordTest, LaunchAbilityForApp_002, TestSize.Level1) std::shared_ptr record = service_->CreateAppRunningRecord( GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); sptr token2 = new (std::nothrow) MockAbilityToken(); @@ -861,7 +861,7 @@ HWTEST_F(AmsAppRunningRecordTest, LaunchAbilityForApp_003, TestSize.Level1) GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); record->SetState(ApplicationState::APP_STATE_READY); record->SetApplicationClient(GetMockedAppSchedulerClient()); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); EXPECT_CALL(*mockAppSchedulerClient_, ScheduleLaunchApplication(_, _)).Times(0); @@ -905,7 +905,7 @@ HWTEST_F(AmsAppRunningRecordTest, LaunchAbilityForApp_004, TestSize.Level1) std::shared_ptr record = service_->CreateAppRunningRecord( GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); EXPECT_CALL(*mockAppSchedulerClient_, ScheduleLaunchApplication(_, _)).Times(1); @@ -953,7 +953,7 @@ HWTEST_F(AmsAppRunningRecordTest, LaunchAbilityForApp_005, TestSize.Level1) std::shared_ptr record = service_->CreateAppRunningRecord( GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); sptr token2 = new (std::nothrow) MockAbilityToken(); @@ -1022,7 +1022,7 @@ HWTEST_F(AmsAppRunningRecordTest, TerminateAbility_002, TestSize.Level1) std::shared_ptr record = service_->CreateAppRunningRecord( GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); EXPECT_CALL(*mockAppSchedulerClient_, ScheduleCleanAbility(_)).Times(0); @@ -1075,11 +1075,11 @@ HWTEST_F(AmsAppRunningRecordTest, GetAbilityRunningRecord_001, TestSize.Level1) std::shared_ptr record = service_->CreateAppRunningRecord( GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); std::string abilityName = "not_exist_ability_name"; - EXPECT_EQ(nullptr, record->GetAbilityRunningRecord(abilityName)); + EXPECT_EQ(nullptr, record->GetAbilityRunningRecord(abilityName, hapModuleInfo.moduleName)); HILOG_INFO("AmsAppRunningRecordTest GetAbilityRunningRecord_001 end"); } @@ -1163,7 +1163,7 @@ HWTEST_F(AmsAppRunningRecordTest, OnAbilityStateChanged_001, TestSize.Level1) GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); auto moduleRecord = record->GetModuleRecordByModuleName(appInfo->bundleName, hapModuleInfo.moduleName); EXPECT_TRUE(moduleRecord != nullptr); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); sptr callback = new (std::nothrow) MockAppStateCallback(); @@ -1663,13 +1663,13 @@ HWTEST_F(AmsAppRunningRecordTest, Specified_LaunchApplication_001, TestSize.Leve EXPECT_TRUE(service_ != nullptr); std::shared_ptr record = service_->CreateAppRunningRecord( GetMockToken(), nullptr, appInfo, abilityInfo, GetTestProcessName(), bundleInfo, hapModuleInfo, nullptr); - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(abilityRecord != nullptr); record->SetApplicationClient(GetMockedAppSchedulerClient()); record->isSpecifiedAbility_ = true; service_->LaunchApplication(record); - auto ability = record->GetAbilityRunningRecord(GetTestAbilityName()); + auto ability = record->GetAbilityRunningRecord(GetTestAbilityName(), hapModuleInfo.moduleName); EXPECT_TRUE(ability->GetState() != AbilityState::ABILITY_STATE_READY); } } // namespace AppExecFwk diff --git a/services/test/moduletest/common/ams/app_running_processes_info_module_test/app_running_processes_info_module_test.cpp b/services/test/moduletest/common/ams/app_running_processes_info_module_test/app_running_processes_info_module_test.cpp index eb7f33ce15d..1510bb71ca0 100644 --- a/services/test/moduletest/common/ams/app_running_processes_info_module_test/app_running_processes_info_module_test.cpp +++ b/services/test/moduletest/common/ams/app_running_processes_info_module_test/app_running_processes_info_module_test.cpp @@ -103,7 +103,7 @@ protected: EXPECT_TRUE(appInfo != nullptr) << "appInfo is nullptr!"; EXPECT_TRUE(abilityInfo != nullptr) << "abilityInfo is nullptr!"; EXPECT_TRUE(record != nullptr) << "record is nullptr!"; - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(index)); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(index), abilityInfo->moduleName); int32_t id = record->GetRecordId(); auto name = record->GetName(); sptr token = abilityRecord->GetToken(); @@ -116,7 +116,8 @@ protected: auto appRecordFromServ = service_->appRunningManager_->CheckAppRunningRecordIsExist( appInfo->name, processName, appInfo->uid, bundleInfo); EXPECT_TRUE(appRecordFromServ); - auto abilityRecordFromServ = appRecordFromServ->GetAbilityRunningRecord(GetTestAbilityName(index)); + auto abilityRecordFromServ = appRecordFromServ->GetAbilityRunningRecord(GetTestAbilityName(index), + abilityInfo->moduleName); int32_t idFromServ = appRecordFromServ->GetRecordId(); sptr tokenFromServ = abilityRecordFromServ->GetToken(); auto nameFromServ = appRecordFromServ->GetName(); diff --git a/services/test/moduletest/common/ams/app_running_record_test/ams_app_running_record_module_test.cpp b/services/test/moduletest/common/ams/app_running_record_test/ams_app_running_record_module_test.cpp index 79166efa620..dc5cfc26ae7 100644 --- a/services/test/moduletest/common/ams/app_running_record_test/ams_app_running_record_module_test.cpp +++ b/services/test/moduletest/common/ams/app_running_record_test/ams_app_running_record_module_test.cpp @@ -103,7 +103,7 @@ protected: EXPECT_TRUE(appInfo != nullptr) << "appInfo is nullptr!"; EXPECT_TRUE(abilityInfo != nullptr) << "abilityInfo is nullptr!"; EXPECT_TRUE(record != nullptr) << "record is nullptr!"; - auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(index)); + auto abilityRecord = record->GetAbilityRunningRecord(GetTestAbilityName(index), abilityInfo->moduleName); int32_t id = record->GetRecordId(); auto name = record->GetName(); sptr token = abilityRecord->GetToken(); @@ -116,7 +116,8 @@ protected: auto appRecordFromServ = service_->appRunningManager_->CheckAppRunningRecordIsExist( appInfo->name, processName, appInfo->uid, bundleInfo); EXPECT_TRUE(appRecordFromServ); - auto abilityRecordFromServ = appRecordFromServ->GetAbilityRunningRecord(GetTestAbilityName(index)); + auto abilityRecordFromServ = appRecordFromServ->GetAbilityRunningRecord(GetTestAbilityName(index), + abilityInfo->moduleName); int32_t idFromServ = appRecordFromServ->GetRecordId(); sptr tokenFromServ = abilityRecordFromServ->GetToken(); auto nameFromServ = appRecordFromServ->GetName(); diff --git a/services/test/moduletest/common/ams/app_service_flow_test/ams_app_service_flow_module_test.cpp b/services/test/moduletest/common/ams/app_service_flow_test/ams_app_service_flow_module_test.cpp index 35eb9e7270d..077df283866 100644 --- a/services/test/moduletest/common/ams/app_service_flow_test/ams_app_service_flow_module_test.cpp +++ b/services/test/moduletest/common/ams/app_service_flow_test/ams_app_service_flow_module_test.cpp @@ -47,13 +47,13 @@ struct TestApplicationPreRunningRecord { {} sptr GetToken(const std::string &abilityName) const { - auto abilityRecord = appRecord_->GetAbilityRunningRecord(abilityName); + auto abilityRecord = appRecord_->GetAbilityRunningRecord(abilityName, ""); return abilityRecord ? abilityRecord->GetToken() : nullptr; } std::shared_ptr GetAbility(const std::string &abilityName) const { - return appRecord_->GetAbilityRunningRecord(abilityName); + return appRecord_->GetAbilityRunningRecord(abilityName, ""); } virtual ~TestApplicationPreRunningRecord() diff --git a/services/test/moduletest/on_new_want_module_test/on_new_want_module_test.cpp b/services/test/moduletest/on_new_want_module_test/on_new_want_module_test.cpp index 680af98a028..cd642c4514e 100644 --- a/services/test/moduletest/on_new_want_module_test/on_new_want_module_test.cpp +++ b/services/test/moduletest/on_new_want_module_test/on_new_want_module_test.cpp @@ -42,20 +42,21 @@ public: static void TearDownTestCase(); void SetUp(); void TearDown(); - AbilityInfo CreateAbilityInfo( - const std::string &name, const std::string &appName, const std::string &bundleName, bool mode); + AbilityInfo CreateAbilityInfo(const std::string &name, const std::string &appName, const std::string &bundleName, + const std::string &moduleName, bool mode); ApplicationInfo CreateAppInfo(const std::string &appName, const std::string &name); inline static std::shared_ptr abilityMgrServ_ {nullptr}; }; -AbilityInfo OnNewWantModuleTest::CreateAbilityInfo( - const std::string &name, const std::string &appName, const std::string &bundleName, bool mode) +AbilityInfo OnNewWantModuleTest::CreateAbilityInfo(const std::string &name, const std::string &appName, + const std::string &bundleName, const std::string &moduleName, bool mode) { AbilityInfo abilityInfo; abilityInfo.visible = true; abilityInfo.name = name; abilityInfo.applicationName = appName; abilityInfo.bundleName = bundleName; + abilityInfo.moduleName = moduleName; abilityInfo.applicationInfo.bundleName = bundleName; abilityInfo.applicationName = "com.ix.hiMusic"; abilityInfo.applicationInfo.name = "com.ix.hiMusic"; @@ -112,21 +113,22 @@ HWTEST_F(OnNewWantModuleTest, Startability_001, TestSize.Level1) std::string abilityName = "MusicAbility"; std::string appName = "test_app"; std::string bundleName = "com.ix.hiMusic"; + std::string moduleName = "entry"; Want want; - ElementName element("device", "com.ix.hiMusic", "MusicAbility"); + ElementName element("device", "com.ix.hiMusic", "MusicAbility", "entry"); want.SetElement(element); AbilityRequest abilityRequest; abilityRequest.want = want; - abilityRequest.abilityInfo = CreateAbilityInfo(abilityName, appName, bundleName, true); + abilityRequest.abilityInfo = CreateAbilityInfo(abilityName, appName, bundleName, moduleName, true); abilityRequest.appInfo = CreateAppInfo(appName, bundleName); std::shared_ptr abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest); abilityRecord->SetAbilityState(OHOS::AAFwk::AbilityState::FOREGROUND); - std::string missionName = - AbilityUtil::ConvertBundleNameSingleton(abilityRequest.abilityInfo.bundleName, abilityRequest.abilityInfo.name); + std::string missionName = AbilityUtil::ConvertBundleNameSingleton(abilityRequest.abilityInfo.bundleName, + abilityRequest.abilityInfo.name, abilityRequest.abilityInfo.moduleName); std::shared_ptr mission = std::make_shared(1, abilityRecord, missionName); missionListManager->Init(); @@ -152,21 +154,22 @@ HWTEST_F(OnNewWantModuleTest, Startability_002, TestSize.Level1) std::string abilityName = "MusicAbility"; std::string appName = "test_app"; std::string bundleName = "com.ix.hiMusic"; + std::string moduleName = "entry"; Want want; - ElementName element("device", "com.ix.hiMusic", "MusicAbility"); + ElementName element("device", "com.ix.hiMusic", "MusicAbility", "entry"); want.SetElement(element); AbilityRequest abilityRequest; abilityRequest.want = want; - abilityRequest.abilityInfo = CreateAbilityInfo(abilityName, appName, bundleName, false); + abilityRequest.abilityInfo = CreateAbilityInfo(abilityName, appName, bundleName, moduleName, false); abilityRequest.appInfo = CreateAppInfo(appName, bundleName); std::shared_ptr abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest); abilityRecord->SetAbilityState(OHOS::AAFwk::AbilityState::FOREGROUND); - std::string missionName = - AbilityUtil::ConvertBundleNameSingleton(abilityRequest.abilityInfo.bundleName, abilityRequest.abilityInfo.name); + std::string missionName = AbilityUtil::ConvertBundleNameSingleton(abilityRequest.abilityInfo.bundleName, + abilityRequest.abilityInfo.name, abilityRequest.abilityInfo.moduleName); std::shared_ptr mission = std::make_shared(1, abilityRecord, missionName); missionListManager->Init(); -- Gitee