mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-25 12:23:20 -04:00
@@ -149,7 +149,7 @@ private:
|
||||
|
||||
NativeValue *OnRevokeQuickFix(NativeEngine &engine, NativeCallbackInfo &info)
|
||||
{
|
||||
HILOG_DEBUG("Function called.");
|
||||
HILOG_DEBUG("called.");
|
||||
if (info.argc != ARGC_ONE && info.argc != ARGC_TWO) {
|
||||
HILOG_ERROR("The number of parameter is invalid.");
|
||||
Throw(engine, AAFwk::ERR_QUICKFIX_PARAM_INVALID);
|
||||
|
||||
@@ -59,10 +59,10 @@ public:
|
||||
void InitUnLoadPatch(const std::string &bundleName, bool isSoContained);
|
||||
std::string GetBundleName();
|
||||
TaskType GetTaskType();
|
||||
void RevokeQuickFixDeleteDone();
|
||||
void RevokeNotifySwitchCallbackTask();
|
||||
void RevokeNotifyDeleteCallbackTask();
|
||||
void RevokeNotifyProcessDiedTask();
|
||||
void HandleRevokePatchDeleted();
|
||||
void HandleRevokePatchSwitched();
|
||||
void PostRevokeQuickFixDeleteTask();
|
||||
void PostRevokeQuickFixProcessDiedTask();
|
||||
private:
|
||||
void PostDeployQuickFixTask(const std::vector<std::string> &quickFixFiles);
|
||||
void PostTimeOutTask();
|
||||
@@ -71,9 +71,9 @@ private:
|
||||
void PostNotifyHotReloadPageTask();
|
||||
void RegAppStateObserver();
|
||||
void PostRevokeQuickFixTask();
|
||||
void HandleRevokeQuickFixAppRunningTask();
|
||||
void HandleRevokeQuickFixNotifyAppUnload();
|
||||
void HandleRevokeQuickFixAppStopTask();
|
||||
void HandleRevokeQuickFixAppRunning();
|
||||
void PostRevokeQuickFixNotifyUnloadPatchTask();
|
||||
void HandleRevokeQuickFixAppStop();
|
||||
|
||||
sptr<AppExecFwk::IQuickFixManager> bundleQfMgr_ = nullptr;
|
||||
sptr<AppExecFwk::IAppMgr> appMgr_ = nullptr;
|
||||
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
void RemoveApplyTask(std::shared_ptr<QuickFixManagerApplyTask> applyTask);
|
||||
|
||||
private:
|
||||
bool CheckPatchTaskByBundleName(const std::string &bundleName);
|
||||
bool CheckTaskRunningState(const std::string &bundleName);
|
||||
void AddApplyTask(std::shared_ptr<QuickFixManagerApplyTask> applyTask);
|
||||
|
||||
static std::mutex mutex_;
|
||||
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
applyTask_->HandlePatchSwitched();
|
||||
break;
|
||||
} else if (applyTask_->GetTaskType() == QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE) {
|
||||
applyTask_->RevokeNotifySwitchCallbackTask();
|
||||
applyTask_->HandleRevokePatchSwitched();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -150,7 +150,7 @@ public:
|
||||
applyTask_->HandlePatchDeleted();
|
||||
break;
|
||||
} else if (applyTask_->GetTaskType() == QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE) {
|
||||
applyTask_->RevokeQuickFixDeleteDone();
|
||||
applyTask_->HandleRevokePatchDeleted();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -207,7 +207,7 @@ public:
|
||||
if (applyTask_->GetTaskType() == QuickFixManagerApplyTask::TaskType::QUICK_FIX_APPLY) {
|
||||
applyTask_->HandlePatchDeployed();
|
||||
} else if (applyTask_->GetTaskType() == QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE) {
|
||||
applyTask_->RevokeNotifyProcessDiedTask();
|
||||
applyTask_->PostRevokeQuickFixProcessDiedTask();
|
||||
} else {
|
||||
HILOG_WARN("Invalid task type");
|
||||
}
|
||||
@@ -258,7 +258,7 @@ public:
|
||||
applyTask_->PostSwitchQuickFixTask();
|
||||
return;
|
||||
} else if (applyTask_->GetTaskType() == QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE) {
|
||||
applyTask_->RevokeNotifyDeleteCallbackTask();
|
||||
applyTask_->PostRevokeQuickFixDeleteTask();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -755,11 +755,11 @@ void QuickFixManagerApplyTask::PostRevokeQuickFixTask()
|
||||
}
|
||||
|
||||
if (applyTask->GetRunningState()) {
|
||||
applyTask->HandleRevokeQuickFixAppRunningTask();
|
||||
applyTask->HandleRevokeQuickFixAppRunning();
|
||||
return;
|
||||
}
|
||||
|
||||
applyTask->HandleRevokeQuickFixAppStopTask();
|
||||
applyTask->HandleRevokeQuickFixAppStop();
|
||||
};
|
||||
|
||||
if (eventHandler_ == nullptr || !eventHandler_->PostTask(revokeTask)) {
|
||||
@@ -768,7 +768,7 @@ void QuickFixManagerApplyTask::PostRevokeQuickFixTask()
|
||||
PostTimeOutTask();
|
||||
}
|
||||
|
||||
void QuickFixManagerApplyTask::HandleRevokeQuickFixAppRunningTask()
|
||||
void QuickFixManagerApplyTask::HandleRevokeQuickFixAppRunning()
|
||||
{
|
||||
// process run
|
||||
// so contained, reg app died
|
||||
@@ -779,23 +779,23 @@ void QuickFixManagerApplyTask::HandleRevokeQuickFixAppRunningTask()
|
||||
}
|
||||
|
||||
// so not contained, call bms to switch
|
||||
HandleRevokeQuickFixAppStopTask();
|
||||
HandleRevokeQuickFixAppStop();
|
||||
}
|
||||
|
||||
void QuickFixManagerApplyTask::RevokeNotifySwitchCallbackTask()
|
||||
void QuickFixManagerApplyTask::HandleRevokePatchSwitched()
|
||||
{
|
||||
HILOG_DEBUG("Function called.");
|
||||
// process is run, notify app unload patch
|
||||
if (GetRunningState()) {
|
||||
HandleRevokeQuickFixNotifyAppUnload();
|
||||
PostRevokeQuickFixNotifyUnloadPatchTask();
|
||||
return;
|
||||
}
|
||||
|
||||
// call bms to delete patch
|
||||
RevokeNotifyDeleteCallbackTask();
|
||||
PostRevokeQuickFixDeleteTask();
|
||||
}
|
||||
|
||||
void QuickFixManagerApplyTask::HandleRevokeQuickFixNotifyAppUnload()
|
||||
void QuickFixManagerApplyTask::PostRevokeQuickFixNotifyUnloadPatchTask()
|
||||
{
|
||||
// notify app process unload patch
|
||||
if (appMgr_ == nullptr) {
|
||||
@@ -818,7 +818,7 @@ void QuickFixManagerApplyTask::HandleRevokeQuickFixNotifyAppUnload()
|
||||
HILOG_DEBUG("Function end.");
|
||||
}
|
||||
|
||||
void QuickFixManagerApplyTask::RevokeNotifyDeleteCallbackTask()
|
||||
void QuickFixManagerApplyTask::PostRevokeQuickFixDeleteTask()
|
||||
{
|
||||
sptr<AppExecFwk::IQuickFixStatusCallback> callback = new (std::nothrow) RevokeQuickFixTaskCallback(
|
||||
shared_from_this());
|
||||
@@ -841,15 +841,15 @@ void QuickFixManagerApplyTask::RevokeNotifyDeleteCallbackTask()
|
||||
HILOG_DEBUG("Function end.");
|
||||
}
|
||||
|
||||
void QuickFixManagerApplyTask::RevokeNotifyProcessDiedTask()
|
||||
void QuickFixManagerApplyTask::PostRevokeQuickFixProcessDiedTask()
|
||||
{
|
||||
HILOG_DEBUG("Function called.");
|
||||
// app process died
|
||||
HandleRevokeQuickFixAppStopTask();
|
||||
HandleRevokeQuickFixAppStop();
|
||||
PostTimeOutTask();
|
||||
}
|
||||
|
||||
void QuickFixManagerApplyTask::HandleRevokeQuickFixAppStopTask()
|
||||
void QuickFixManagerApplyTask::HandleRevokeQuickFixAppStop()
|
||||
{
|
||||
sptr<AppExecFwk::IQuickFixStatusCallback> callback = new (std::nothrow) RevokeQuickFixTaskCallback(
|
||||
shared_from_this());
|
||||
@@ -871,7 +871,7 @@ void QuickFixManagerApplyTask::HandleRevokeQuickFixAppStopTask()
|
||||
HILOG_DEBUG("Function end.");
|
||||
}
|
||||
|
||||
void QuickFixManagerApplyTask::RevokeQuickFixDeleteDone()
|
||||
void QuickFixManagerApplyTask::HandleRevokePatchDeleted()
|
||||
{
|
||||
NotifyApplyStatus(QUICK_FIX_OK);
|
||||
RemoveSelf();
|
||||
|
||||
@@ -135,7 +135,7 @@ int32_t QuickFixManagerService::RevokeQuickFix(const std::string &bundleName)
|
||||
return QUICK_FIX_VERIFY_PERMISSION_FAILED;
|
||||
}
|
||||
|
||||
if (CheckPatchTaskByBundleName(bundleName)) {
|
||||
if (CheckTaskRunningState(bundleName)) {
|
||||
HILOG_ERROR("Has a apply quick fix task");
|
||||
return QUICK_FIX_DEPLOYING_TASK;
|
||||
}
|
||||
@@ -210,7 +210,7 @@ void QuickFixManagerService::RemoveApplyTask(std::shared_ptr<QuickFixManagerAppl
|
||||
}
|
||||
}
|
||||
|
||||
bool QuickFixManagerService::CheckPatchTaskByBundleName(const std::string &bundleName)
|
||||
bool QuickFixManagerService::CheckTaskRunningState(const std::string &bundleName)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
for (auto &item : applyTasks_) {
|
||||
|
||||
+18
-18
@@ -444,11 +444,11 @@ HWTEST_F(QuickFixManagerApplyTaskTest, RegAppStateObserver_0200, TestSize.Level1
|
||||
|
||||
|
||||
/**
|
||||
* @tc.name: RevokeQuickFixDeleteDone_0100
|
||||
* @tc.name: HandleRevokePatchDeleted_0100
|
||||
* @tc.desc: revoke quick fix.
|
||||
* @tc.type: FUNC
|
||||
*/
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, RevokeQuickFixDeleteDone_0100, TestSize.Level1)
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokePatchDeleted_0100, TestSize.Level1)
|
||||
{
|
||||
HILOG_INFO("%{public}s start.", __func__);
|
||||
auto applyTask = std::make_shared<QuickFixManagerApplyTask>(bundleQfMgr_, appMgr_,
|
||||
@@ -458,16 +458,16 @@ HWTEST_F(QuickFixManagerApplyTaskTest, RevokeQuickFixDeleteDone_0100, TestSize.L
|
||||
applyTask->bundleVersionCode_ = 1;
|
||||
applyTask->patchVersionCode_ = 100;
|
||||
applyTask->taskType_ = QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE;
|
||||
applyTask->RevokeQuickFixDeleteDone();
|
||||
applyTask->HandleRevokePatchDeleted();
|
||||
HILOG_INFO("%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: RevokeNotifySwitchCallbackTask_0100
|
||||
* @tc.name: HandleRevokePatchSwitched_0100
|
||||
* @tc.desc: revoke quick fix.
|
||||
* @tc.type: FUNC
|
||||
*/
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, RevokeNotifySwitchCallbackTask_0100, TestSize.Level1)
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokePatchSwitched_0100, TestSize.Level1)
|
||||
{
|
||||
HILOG_INFO("%{public}s start.", __func__);
|
||||
auto applyTask = std::make_shared<QuickFixManagerApplyTask>(bundleQfMgr_, appMgr_,
|
||||
@@ -477,17 +477,17 @@ HWTEST_F(QuickFixManagerApplyTaskTest, RevokeNotifySwitchCallbackTask_0100, Test
|
||||
applyTask->bundleVersionCode_ = 1;
|
||||
applyTask->patchVersionCode_ = 100;
|
||||
applyTask->taskType_ = QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE;
|
||||
applyTask->RevokeNotifySwitchCallbackTask();
|
||||
applyTask->HandleRevokePatchSwitched();
|
||||
EXPECT_EQ(applyTask->quickFixMgrService_.promote(), quickFixMs_);
|
||||
HILOG_INFO("%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: RevokeNotifyProcessDiedTask_0100
|
||||
* @tc.name: PostRevokeQuickFixProcessDiedTask_0100
|
||||
* @tc.desc: revoke quick fix.
|
||||
* @tc.type: FUNC
|
||||
*/
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, RevokeNotifyProcessDiedTask_0100, TestSize.Level1)
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, PostRevokeQuickFixProcessDiedTask_0100, TestSize.Level1)
|
||||
{
|
||||
HILOG_INFO("%{public}s start.", __func__);
|
||||
auto applyTask = std::make_shared<QuickFixManagerApplyTask>(bundleQfMgr_, appMgr_,
|
||||
@@ -497,17 +497,17 @@ HWTEST_F(QuickFixManagerApplyTaskTest, RevokeNotifyProcessDiedTask_0100, TestSiz
|
||||
applyTask->bundleVersionCode_ = 1;
|
||||
applyTask->patchVersionCode_ = 100;
|
||||
applyTask->taskType_ = QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE;
|
||||
applyTask->RevokeNotifyProcessDiedTask();
|
||||
applyTask->PostRevokeQuickFixProcessDiedTask();
|
||||
EXPECT_EQ(applyTask->quickFixMgrService_.promote(), quickFixMs_);
|
||||
HILOG_INFO("%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: HandleRevokeQuickFixAppRunningTask_0100
|
||||
* @tc.name: HandleRevokeQuickFixAppRunning_0100
|
||||
* @tc.desc: revoke quick fix.
|
||||
* @tc.type: FUNC
|
||||
*/
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokeQuickFixAppRunningTask_0100, TestSize.Level1)
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokeQuickFixAppRunning_0100, TestSize.Level1)
|
||||
{
|
||||
HILOG_INFO("%{public}s start.", __func__);
|
||||
auto applyTask = std::make_shared<QuickFixManagerApplyTask>(bundleQfMgr_, appMgr_,
|
||||
@@ -518,17 +518,17 @@ HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokeQuickFixAppRunningTask_0100,
|
||||
applyTask->patchVersionCode_ = 100;
|
||||
applyTask->isSoContained_ = true;
|
||||
applyTask->taskType_ = QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE;
|
||||
applyTask->HandleRevokeQuickFixAppRunningTask();
|
||||
applyTask->HandleRevokeQuickFixAppRunning();
|
||||
EXPECT_EQ(applyTask->quickFixMgrService_.promote(), quickFixMs_);
|
||||
HILOG_INFO("%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: HandleRevokeQuickFixAppRunningTask_0200
|
||||
* @tc.name: HandleRevokeQuickFixAppRunning_0200
|
||||
* @tc.desc: revoke quick fix.
|
||||
* @tc.type: FUNC
|
||||
*/
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokeQuickFixAppRunningTask_0200, TestSize.Level1)
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokeQuickFixAppRunning_0200, TestSize.Level1)
|
||||
{
|
||||
HILOG_INFO("%{public}s start.", __func__);
|
||||
auto applyTask = std::make_shared<QuickFixManagerApplyTask>(bundleQfMgr_, appMgr_,
|
||||
@@ -539,17 +539,17 @@ HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokeQuickFixAppRunningTask_0200,
|
||||
applyTask->patchVersionCode_ = 100;
|
||||
applyTask->isSoContained_ = false;
|
||||
applyTask->taskType_ = QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE;
|
||||
applyTask->HandleRevokeQuickFixAppRunningTask();
|
||||
applyTask->HandleRevokeQuickFixAppRunning();
|
||||
EXPECT_EQ(applyTask->quickFixMgrService_.promote(), quickFixMs_);
|
||||
HILOG_INFO("%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: HandleRevokeQuickFixNotifyAppUnload_0100
|
||||
* @tc.name: PostRevokeQuickFixNotifyUnloadPatchTask_0100
|
||||
* @tc.desc: revoke quick fix.
|
||||
* @tc.type: FUNC
|
||||
*/
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokeQuickFixNotifyAppUnload_0100, TestSize.Level1)
|
||||
HWTEST_F(QuickFixManagerApplyTaskTest, PostRevokeQuickFixNotifyUnloadPatchTask_0100, TestSize.Level1)
|
||||
{
|
||||
HILOG_INFO("%{public}s start.", __func__);
|
||||
auto applyTask = std::make_shared<QuickFixManagerApplyTask>(bundleQfMgr_, appMgr_,
|
||||
@@ -560,7 +560,7 @@ HWTEST_F(QuickFixManagerApplyTaskTest, HandleRevokeQuickFixNotifyAppUnload_0100,
|
||||
applyTask->patchVersionCode_ = 100;
|
||||
applyTask->isSoContained_ = false;
|
||||
applyTask->taskType_ = QuickFixManagerApplyTask::TaskType::QUICK_FIX_REVOKE;
|
||||
applyTask->HandleRevokeQuickFixNotifyAppUnload();
|
||||
applyTask->PostRevokeQuickFixNotifyUnloadPatchTask();
|
||||
EXPECT_EQ(applyTask->quickFixMgrService_.promote(), quickFixMs_);
|
||||
HILOG_INFO("%{public}s end.", __func__);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user