diff --git a/frameworks/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.cpp b/frameworks/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.cpp index 73902538c8..4f0c0561de 100644 --- a/frameworks/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.cpp +++ b/frameworks/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.cpp @@ -727,6 +727,20 @@ bool BundleMgrHelper::QueryExtensionAbilityInfoByUri( return bundleMgr->QueryExtensionAbilityInfoByUri(uri, userId, extensionAbilityInfo); } +bool BundleMgrHelper::QueryExtensionAbilityInfoByUriOptimal( + const std::string &uri, int32_t userId, ExtensionAbilityInfo &extensionAbilityInfo) +{ + TAG_LOGD(AAFwkTag::BUNDLEMGRHELPER, "called"); + auto bundleMgr = Connect(); + if (bundleMgr == nullptr) { + TAG_LOGE(AAFwkTag::BUNDLEMGRHELPER, "null bundleMgr"); + return false; + } + + HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); + return bundleMgr->QueryExtensionAbilityInfoByUriOptimal(uri, userId, extensionAbilityInfo); +} + bool BundleMgrHelper::ImplicitQueryInfoByPriority( const Want &want, int32_t flags, int32_t userId, AbilityInfo &abilityInfo, ExtensionAbilityInfo &extensionInfo) { diff --git a/interfaces/kits/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.h b/interfaces/kits/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.h index 614e734a7e..7865b82b38 100644 --- a/interfaces/kits/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.h +++ b/interfaces/kits/native/appkit/ability_bundle_manager_helper/bundle_mgr_helper.h @@ -83,6 +83,8 @@ public: bool UnregisterBundleEventCallback(const sptr &bundleEventCallback); bool QueryExtensionAbilityInfoByUri( const std::string &uri, int32_t userId, ExtensionAbilityInfo &extensionAbilityInfo); + bool QueryExtensionAbilityInfoByUriOptimal( + const std::string &uri, int32_t userId, ExtensionAbilityInfo &extensionAbilityInfo); bool ImplicitQueryInfoByPriority(const Want &want, int32_t flags, int32_t userId, AbilityInfo &abilityInfo, ExtensionAbilityInfo &extensionInfo); bool QueryAbilityInfoByUri(const std::string &abilityUri, int32_t userId, AbilityInfo &abilityInfo); diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 6b1955f26c..b47f1bd885 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -5830,7 +5830,8 @@ int32_t AbilityManagerService::ConnectAbilityCommon( auto bms = AbilityUtil::GetBundleManagerHelper(); CHECK_POINTER_AND_RETURN(bms, ERR_INVALID_VALUE); - bool queryResult = IN_PROCESS_CALL(bms->QueryExtensionAbilityInfoByUri(uri, validUserId, extensionInfo)); + bool queryResult = + IN_PROCESS_CALL(bms->QueryExtensionAbilityInfoByUriOptimal(uri, validUserId, extensionInfo)); if (!queryResult || extensionInfo.name.empty() || extensionInfo.bundleName.empty()) { TAG_LOGE(AAFwkTag::SERVICE_EXT, "invalid extension ability info"); if (extensionType == AppExecFwk::ExtensionAbilityType::UI_SERVICE) { @@ -5955,7 +5956,8 @@ int AbilityManagerService::ConnectUIExtensionAbility(const Want &want, const spt auto bms = AbilityUtil::GetBundleManagerHelper(); CHECK_POINTER_AND_RETURN(bms, ERR_INVALID_VALUE); - bool queryResult = IN_PROCESS_CALL(bms->QueryExtensionAbilityInfoByUri(uri, validUserId, extensionInfo)); + bool queryResult = + IN_PROCESS_CALL(bms->QueryExtensionAbilityInfoByUriOptimal(uri, validUserId, extensionInfo)); if (!queryResult || extensionInfo.name.empty() || extensionInfo.bundleName.empty()) { TAG_LOGE(AAFwkTag::UI_EXT, "invalid extension ability info"); eventInfo.errReason = "invalid extension ability info"; diff --git a/services/abilitymgr/src/interceptor/screen_unlock_interceptor.cpp b/services/abilitymgr/src/interceptor/screen_unlock_interceptor.cpp index 97244747d3..b4dc5c3cb6 100644 --- a/services/abilitymgr/src/interceptor/screen_unlock_interceptor.cpp +++ b/services/abilitymgr/src/interceptor/screen_unlock_interceptor.cpp @@ -113,7 +113,7 @@ bool ScreenUnlockInterceptor::QueryTargetAbilityInfoByUri(const AbilityIntercept std::string uri = param.want.GetUri().ToString(); TAG_LOGD(AAFwkTag::ABILITYMGR, "Query by uri: %{private}s, userId: %{public}d", uri.c_str(), param.userId); AppExecFwk::ExtensionAbilityInfo extensionInfo; - bool queryResult = IN_PROCESS_CALL(bundleMgrHelper->QueryExtensionAbilityInfoByUri( + bool queryResult = IN_PROCESS_CALL(bundleMgrHelper->QueryExtensionAbilityInfoByUriOptimal( uri, param.userId, extensionInfo)); if (!queryResult || extensionInfo.name.empty() || extensionInfo.bundleName.empty()) { TAG_LOGD(AAFwkTag::ABILITYMGR, "Cannot find extension by uri"); diff --git a/test/unittest/ability_permission_util_second_test/mock/src/mock_bundle_mgr_helper.cpp b/test/unittest/ability_permission_util_second_test/mock/src/mock_bundle_mgr_helper.cpp index ef9303a938..a8d8671e2b 100755 --- a/test/unittest/ability_permission_util_second_test/mock/src/mock_bundle_mgr_helper.cpp +++ b/test/unittest/ability_permission_util_second_test/mock/src/mock_bundle_mgr_helper.cpp @@ -244,6 +244,12 @@ bool BundleMgrHelper::QueryExtensionAbilityInfoByUri( return false; } +bool BundleMgrHelper::QueryExtensionAbilityInfoByUriOptimal( + const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo) +{ + return false; +} + bool BundleMgrHelper::ImplicitQueryInfoByPriority( const Want& want, int32_t flags, int32_t userId, AbilityInfo& abilityInfo, ExtensionAbilityInfo& extensionInfo) { diff --git a/test/unittest/app_exit_reason_helper_fourth_test/mock/include/bundle_mgr_helper.h b/test/unittest/app_exit_reason_helper_fourth_test/mock/include/bundle_mgr_helper.h index 836f908b8b..0b9f2b67d1 100644 --- a/test/unittest/app_exit_reason_helper_fourth_test/mock/include/bundle_mgr_helper.h +++ b/test/unittest/app_exit_reason_helper_fourth_test/mock/include/bundle_mgr_helper.h @@ -191,6 +191,12 @@ public: return false; } + bool QueryExtensionAbilityInfoByUriOptimal( + const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo) + { + return false; + } + bool ImplicitQueryInfoByPriority(const AAFwk::Want& want, int32_t flags, int32_t userId, AbilityInfo& abilityInfo, ExtensionAbilityInfo& extensionInfo) { diff --git a/test/unittest/app_mgr_service_fourth_test/mock/include/mock_bundle_mgr_helper.h b/test/unittest/app_mgr_service_fourth_test/mock/include/mock_bundle_mgr_helper.h index 59714c8b07..12806cf54f 100755 --- a/test/unittest/app_mgr_service_fourth_test/mock/include/mock_bundle_mgr_helper.h +++ b/test/unittest/app_mgr_service_fourth_test/mock/include/mock_bundle_mgr_helper.h @@ -76,6 +76,8 @@ public: bool UnregisterBundleEventCallback(const sptr& bundleEventCallback); bool QueryExtensionAbilityInfoByUri( const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo); + bool QueryExtensionAbilityInfoByUriOptimal( + const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo); bool ImplicitQueryInfoByPriority( const Want& want, int32_t flags, int32_t userId, AbilityInfo& abilityInfo, ExtensionAbilityInfo& extensionInfo); bool QueryAbilityInfoByUri(const std::string& abilityUri, int32_t userId, AbilityInfo& abilityInfo); diff --git a/test/unittest/app_mgr_service_inner_eighth_test/mock/src/mock_bundle_mgr_helper.cpp b/test/unittest/app_mgr_service_inner_eighth_test/mock/src/mock_bundle_mgr_helper.cpp index e2f5808e6f..7fc55c9213 100755 --- a/test/unittest/app_mgr_service_inner_eighth_test/mock/src/mock_bundle_mgr_helper.cpp +++ b/test/unittest/app_mgr_service_inner_eighth_test/mock/src/mock_bundle_mgr_helper.cpp @@ -241,6 +241,12 @@ bool BundleMgrHelper::QueryExtensionAbilityInfoByUri( return false; } +bool BundleMgrHelper::QueryExtensionAbilityInfoByUriOptimal( + const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo) +{ + return false; +} + bool BundleMgrHelper::ImplicitQueryInfoByPriority( const Want& want, int32_t flags, int32_t userId, AbilityInfo& abilityInfo, ExtensionAbilityInfo& extensionInfo) { diff --git a/test/unittest/app_mgr_service_inner_ninth_test/mock/src/mock_bundle_mgr_helper.cpp b/test/unittest/app_mgr_service_inner_ninth_test/mock/src/mock_bundle_mgr_helper.cpp index ec7fc1e1b4..75045005a0 100644 --- a/test/unittest/app_mgr_service_inner_ninth_test/mock/src/mock_bundle_mgr_helper.cpp +++ b/test/unittest/app_mgr_service_inner_ninth_test/mock/src/mock_bundle_mgr_helper.cpp @@ -241,6 +241,12 @@ bool BundleMgrHelper::QueryExtensionAbilityInfoByUri( return false; } +bool BundleMgrHelper::QueryExtensionAbilityInfoByUriOptimal( + const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo) +{ + return false; +} + bool BundleMgrHelper::ImplicitQueryInfoByPriority( const Want& want, int32_t flags, int32_t userId, AbilityInfo& abilityInfo, ExtensionAbilityInfo& extensionInfo) { diff --git a/test/unittest/app_mgr_service_inner_seventh_test/mock/src/mock_bundle_mgr_helper.cpp b/test/unittest/app_mgr_service_inner_seventh_test/mock/src/mock_bundle_mgr_helper.cpp index f7e5e2dae4..f84ee1be7f 100755 --- a/test/unittest/app_mgr_service_inner_seventh_test/mock/src/mock_bundle_mgr_helper.cpp +++ b/test/unittest/app_mgr_service_inner_seventh_test/mock/src/mock_bundle_mgr_helper.cpp @@ -239,6 +239,12 @@ bool BundleMgrHelper::QueryExtensionAbilityInfoByUri( return false; } +bool BundleMgrHelper::QueryExtensionAbilityInfoByUriOptimal( + const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo) +{ + return false; +} + bool BundleMgrHelper::ImplicitQueryInfoByPriority( const Want& want, int32_t flags, int32_t userId, AbilityInfo& abilityInfo, ExtensionAbilityInfo& extensionInfo) { diff --git a/test/unittest/app_mgr_service_inner_sixth_test/mock/include/mock_bundle_mgr_helper.h b/test/unittest/app_mgr_service_inner_sixth_test/mock/include/mock_bundle_mgr_helper.h index 35b4d43898..ad807c49bd 100755 --- a/test/unittest/app_mgr_service_inner_sixth_test/mock/include/mock_bundle_mgr_helper.h +++ b/test/unittest/app_mgr_service_inner_sixth_test/mock/include/mock_bundle_mgr_helper.h @@ -78,6 +78,8 @@ public: bool UnregisterBundleEventCallback(const sptr& bundleEventCallback); bool QueryExtensionAbilityInfoByUri( const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo); + bool QueryExtensionAbilityInfoByUriOptimal( + const std::string& uri, int32_t userId, ExtensionAbilityInfo& extensionAbilityInfo); bool ImplicitQueryInfoByPriority( const Want& want, int32_t flags, int32_t userId, AbilityInfo& abilityInfo, ExtensionAbilityInfo& extensionInfo); bool QueryAbilityInfoByUri(const std::string& abilityUri, int32_t userId, AbilityInfo& abilityInfo); diff --git a/test/unittest/crowd_test_interceptor_test/mock/mock_bundle_mgr_helper.cpp b/test/unittest/crowd_test_interceptor_test/mock/mock_bundle_mgr_helper.cpp index 4748d15bda..fc4326f677 100644 --- a/test/unittest/crowd_test_interceptor_test/mock/mock_bundle_mgr_helper.cpp +++ b/test/unittest/crowd_test_interceptor_test/mock/mock_bundle_mgr_helper.cpp @@ -235,6 +235,12 @@ bool BundleMgrHelper::QueryExtensionAbilityInfoByUri( return false; } +bool BundleMgrHelper::QueryExtensionAbilityInfoByUriOptimal( + const std::string &uri, int32_t userId, ExtensionAbilityInfo &extensionAbilityInfo) +{ + return false; +} + bool BundleMgrHelper::ImplicitQueryInfoByPriority( const Want &want, int32_t flags, int32_t userId, AbilityInfo &abilityInfo, ExtensionAbilityInfo &extensionInfo) {