mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-26 18:47:03 -04:00
No appCloneSelector for scb
Signed-off-by: wangzhen <wangzhen416@huawei.com>
This commit is contained in:
@@ -70,6 +70,7 @@ struct StartAbilityUtils {
|
||||
static thread_local int32_t ermsResultCode;
|
||||
static thread_local bool isWantWithAppCloneIndex;
|
||||
static thread_local bool ermsSupportBackToCallerFlag;
|
||||
static thread_local bool startSpecifiedBySCB;
|
||||
};
|
||||
|
||||
struct StartAbilityInfoWrap {
|
||||
|
||||
@@ -12330,8 +12330,11 @@ int32_t AbilityManagerService::StartSpecifiedAbilityBySCB(const Want &want)
|
||||
TAG_LOGE(AAFwkTag::ABILITYMGR, "no sceneboard called, no allowed");
|
||||
return ERR_PERMISSION_DENIED;
|
||||
}
|
||||
return StartAbilityInner(want, nullptr, DEFAULT_INVAL_VALUE, false, DEFAULT_INVAL_VALUE, false, 0, false,
|
||||
StartAbilityUtils::startSpecifiedBySCB = true;
|
||||
auto ret = StartAbilityInner(want, nullptr, DEFAULT_INVAL_VALUE, false, DEFAULT_INVAL_VALUE, false, 0, false,
|
||||
false, false, false, false, true);
|
||||
StartAbilityUtils::startSpecifiedBySCB = false;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int32_t AbilityManagerService::RegisterIAbilityManagerCollaborator(
|
||||
|
||||
@@ -37,6 +37,7 @@ thread_local bool StartAbilityUtils::skipErms = false;
|
||||
thread_local int32_t StartAbilityUtils::ermsResultCode = ERMS_ISALLOW_RESULTCODE;
|
||||
thread_local bool StartAbilityUtils::isWantWithAppCloneIndex = false;
|
||||
thread_local bool StartAbilityUtils::ermsSupportBackToCallerFlag = false;
|
||||
thread_local bool StartAbilityUtils::startSpecifiedBySCB = false;
|
||||
|
||||
bool StartAbilityUtils::GetAppIndex(const Want &want, sptr<IRemoteObject> callerToken, int32_t &appIndex)
|
||||
{
|
||||
@@ -162,8 +163,8 @@ StartAbilityInfoWrap::StartAbilityInfoWrap(const Want &want, int32_t validUserId
|
||||
|
||||
StartAbilityUtils::ermsResultCode = ERMS_ISALLOW_RESULTCODE;
|
||||
StartAbilityUtils::isWantWithAppCloneIndex = false;
|
||||
if (want.HasParameter(AAFwk::Want::PARAM_APP_CLONE_INDEX_KEY) && appIndex >= 0 &&
|
||||
appIndex < AbilityRuntime::GlobalConstant::MAX_APP_CLONE_INDEX) {
|
||||
if ((want.HasParameter(AAFwk::Want::PARAM_APP_CLONE_INDEX_KEY) && appIndex >= 0 &&
|
||||
appIndex < AbilityRuntime::GlobalConstant::MAX_APP_CLONE_INDEX) || StartAbilityUtils::startSpecifiedBySCB) {
|
||||
StartAbilityUtils::isWantWithAppCloneIndex = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -271,6 +271,39 @@ HWTEST_F(StartAbilityUtilsTest, SetStartAbilityInfo_001, TestSize.Level1)
|
||||
EXPECT_NE(abilityName, abilityInfo.name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: StartAbilityInfoWrap_001
|
||||
* @tc.desc: test class StartAbilityUtil StartAbilityInfoWrap constructor
|
||||
* @tc.type: FUNC
|
||||
*/
|
||||
HWTEST_F(StartAbilityUtilsTest, StartAbilityInfoWrap_001, TestSize.Level1)
|
||||
{
|
||||
Want want;
|
||||
int32_t userId = 0;
|
||||
int32_t appIndex = 0;
|
||||
int32_t validUserId = 0;
|
||||
StartAbilityUtils::startSpecifiedBySCB = true;
|
||||
StartAbilityInfoWrap threadLocalInfo(want, validUserId, appIndex, nullptr);
|
||||
EXPECT_TRUE(StartAbilityUtils::isWantWithAppCloneIndex);
|
||||
StartAbilityUtils::startSpecifiedBySCB = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: StartAbilityInfoWrap_002
|
||||
* @tc.desc: test class StartAbilityUtil StartAbilityInfoWrap constructor
|
||||
* @tc.type: FUNC
|
||||
*/
|
||||
HWTEST_F(StartAbilityUtilsTest, StartAbilityInfoWrap_002, TestSize.Level1)
|
||||
{
|
||||
Want want;
|
||||
int32_t userId = 0;
|
||||
int32_t appIndex = 0;
|
||||
int32_t validUserId = 0;
|
||||
StartAbilityUtils::startSpecifiedBySCB = false;
|
||||
StartAbilityInfoWrap threadLocalInfo(want, validUserId, appIndex, nullptr);
|
||||
EXPECT_FALSE(StartAbilityUtils::isWantWithAppCloneIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: CreateStartAbilityInfo_001
|
||||
* @tc.desc: test class StartAbilityUtil CreateStartAbilityInfo function
|
||||
|
||||
Reference in New Issue
Block a user