From a2b6d4967b3d7af4281ed3ecff44e5d9794b1689 Mon Sep 17 00:00:00 2001 From: wangzhen Date: Tue, 2 Jul 2024 21:45:19 +0800 Subject: [PATCH] mission list module Signed-off-by: wangzhen Change-Id: I1381e16918408cd9b7eebcdf73e139cfe53673b2 --- services/abilitymgr/BUILD.gn | 137 ++++++++++++ services/abilitymgr/abilitymgr.gni | 6 - .../include/ability_manager_service.h | 14 +- .../abilitymgr/include/mission_list_manager.h | 128 ++++++------ .../include/mission_list_manager_interface.h | 143 +++++++++++++ .../abilitymgr/include/sub_managers_helper.h | 23 +- services/abilitymgr/libabilityms.map | 2 + .../src/ability_manager_service.cpp | 38 ++-- services/abilitymgr/src/ability_record.cpp | 29 ++- .../abilitymgr/src/mission_list_manager.cpp | 116 ++++++++--- .../abilitymgr/src/sub_managers_helper.cpp | 72 ++++++- services/abilitymgr/src/user_controller.cpp | 19 +- test/fuzztest/missioninfomgra_fuzzer/BUILD.gn | 1 + test/fuzztest/missioninfomgrb_fuzzer/BUILD.gn | 1 + test/fuzztest/missioninfomgrc_fuzzer/BUILD.gn | 1 + .../missionlistmanagerfourth_fuzzer/BUILD.gn | 1 + .../missionlistmanagersecond_fuzzer/BUILD.gn | 1 + .../missionlistmanagerthird_fuzzer/BUILD.gn | 1 + .../pendingwantmanager_fuzzer/BUILD.gn | 1 + .../BUILD.gn | 1 + .../ability_manager_service_dump_test.cpp | 10 +- .../ability_timeout_module_test/BUILD.gn | 1 + .../ability_timeout_module_test.cpp | 197 ++++++++++-------- .../specified_ability_service_test/BUILD.gn | 1 + .../specified_ability_service_test.cpp | 6 +- test/moduletest/mission_dump_test/BUILD.gn | 1 + .../mission_dump_test/mission_dump_test.cpp | 2 + .../on_new_want_module_test/BUILD.gn | 1 + .../running_infos_module_test/BUILD.gn | 1 + .../running_infos_module_test.cpp | 10 +- .../BUILD.gn | 1 + .../start_ability_implicit_module_test.cpp | 18 +- .../start_option_display_id_test/BUILD.gn | 1 + .../start_option_display_id_test.cpp | 4 +- .../ability_manager_service_account_test.cpp | 71 ++++--- test/unittest/ability_record_test/BUILD.gn | 1 + test/unittest/ability_timeout_test/BUILD.gn | 1 + .../ability_timeout_test.cpp | 103 ++++----- .../BUILD.gn | 1 + test/unittest/call_container_test/BUILD.gn | 1 + .../call_container_test.cpp | 1 + .../mission_data_storage_test/BUILD.gn | 1 + test/unittest/mission_info_mgr_test/BUILD.gn | 1 + test/unittest/mission_list_dump_test/BUILD.gn | 5 +- .../mission_list_manager_dump_test/BUILD.gn | 1 + .../mission_list_manager_test/BUILD.gn | 1 + .../mission_list_manager_ut_test/BUILD.gn | 1 + test/unittest/mission_list_test/BUILD.gn | 2 + test/unittest/mission_test/BUILD.gn | 1 + test/unittest/running_infos_test/BUILD.gn | 1 + .../running_infos_test/running_infos_test.cpp | 13 +- .../specified_mission_list_test/BUILD.gn | 1 + .../start_option_display_id_test/BUILD.gn | 1 + .../start_option_display_id_test.cpp | 4 +- .../task_data_persistence_mgr_test/BUILD.gn | 1 + .../BUILD.gn | 1 + 56 files changed, 866 insertions(+), 337 deletions(-) create mode 100644 services/abilitymgr/include/mission_list_manager_interface.h diff --git a/services/abilitymgr/BUILD.gn b/services/abilitymgr/BUILD.gn index 4a9a6b26b7..74928a4c1e 100644 --- a/services/abilitymgr/BUILD.gn +++ b/services/abilitymgr/BUILD.gn @@ -20,6 +20,7 @@ group("abilityms_target") { deps = [ ":abilityms", ":ams_service_config", + ":mission_list", ] } @@ -256,6 +257,142 @@ ohos_prebuilt_etc("default_recovery_config.json") { part_name = "ability_runtime" } +ohos_shared_library("mission_list") { + sanitize = { + integer_overflow = true + ubsan = true + boundary_sanitize = true + cfi = true + cfi_cross_dso = true + cfi_vcall_icall_only = true + debug = false + } + branch_protector_ret = "pac_ret" + + include_dirs = [ + "${ability_runtime_innerkits_path}/ability_manager/include", + "${ability_runtime_innerkits_path}/ability_manager/include/status_bar_delegate", + "${ability_runtime_innerkits_path}/connectionobs_manager/include", + "${ability_runtime_innerkits_path}/deps_wrapper/include", + "${ability_runtime_innerkits_path}/session_handler/include", + "${ability_runtime_path}/interfaces/kits/native/ability/native", + "${ability_runtime_path}/interfaces/kits/native/appkit/ability_bundle_manager_helper", + "${ability_runtime_services_path}/abilitymgr/include", + "${ability_runtime_services_path}/common/include", + "${ability_runtime_services_path}/appdfr/include", + "${ability_runtime_utils_path}/global/constant", + "${ability_runtime_utils_path}/server/constant", + ] + + defines = [] + + if (ability_command_for_test) { + defines += [ "ABILITY_COMMAND_FOR_TEST" ] + } + + if (ability_runtime_graphics) { + defines += [ + "SUPPORT_GRAPHICS", + "SUPPORT_SCREEN", + ] + } + + cflags = [] + if (target_cpu == "arm") { + cflags += [ "-DBINDER_IPC_32BIT" ] + } + + sources = [ + "src/mission.cpp", + "src/mission_data_storage.cpp", + "src/mission_info_mgr.cpp", + "src/mission_list.cpp", + "src/mission_list_manager.cpp", + "src/task_data_persistence_mgr.cpp", + ] + + deps = [ + ":abilityms", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager", + "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", + "${ability_runtime_innerkits_path}/ability_manager:ability_start_setting", + "${ability_runtime_innerkits_path}/ability_manager:mission_info", + "${ability_runtime_innerkits_path}/ability_manager:process_options", + "${ability_runtime_innerkits_path}/app_manager:app_manager", + "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", + "${ability_runtime_native_path}/ability/native:auto_startup_callback", + "${ability_runtime_native_path}/appkit:appkit_manager_helper", + "${ability_runtime_path}/utils/global/freeze:freeze_util", + "${ability_runtime_path}/utils/server/startup:startup_util", + "${ability_runtime_services_path}/common:app_util", + "${ability_runtime_services_path}/common:event_report", + "${ability_runtime_services_path}/common:perm_verification", + "${ability_runtime_services_path}/common:res_sched_util", + "${ability_runtime_services_path}/common:task_handler_wrap", + ] + + external_deps = [ + "ability_base:base", + "ability_base:configuration", + "ability_base:session_info", + "ability_base:view_data", + "ability_base:want", + "ability_base:zuri", + "access_token:libaccesstoken_sdk", + "access_token:libtokenid_sdk", + "background_task_mgr:bgtaskmgr_innerkits", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "bundle_framework:libappexecfwk_common", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "config_policy:configpolicy_util", + "dsoftbus:softbus_client", + "ffrt:libffrt", + "graphic_2d:color_manager", + "hicollie:libhicollie", + "hilog:libhilog", + "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "icu:shared_icuuc", + "init:libbeget_proxy", + "init:libbegetutil", + "ipc:ipc_core", + "json:nlohmann_json_static", + "kv_store:distributeddata_inner", + "os_account:os_account_innerkits", + "relational_store:native_appdatafwk", + "relational_store:native_dataability", + "relational_store:native_rdb", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + ] + + if (background_task_mgr_continuous_task_enable) { + external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ] + } + + if (os_dlp_part_enabled) { + defines += [ "WITH_DLP" ] + external_deps += [ "dlp_permission_service:libdlp_permission_sdk" ] + } + + if (ability_runtime_graphics) { + external_deps += [ + "ability_base:session_info", + "i18n:intl_util", + "image_framework:image_native", + "resource_management:global_resmgr", + "window_manager:libdm", + "window_manager:libwm", + ] + } + + subsystem_name = "ability" + innerapi_tags = [ "platformsdk_indirect" ] + part_name = "ability_runtime" +} + group("ams_service_config") { deps = [ ":ams_service_config.json", diff --git a/services/abilitymgr/abilitymgr.gni b/services/abilitymgr/abilitymgr.gni index 41ed9a328c..b5a8fc6f3b 100644 --- a/services/abilitymgr/abilitymgr.gni +++ b/services/abilitymgr/abilitymgr.gni @@ -79,7 +79,6 @@ abilityms_files = [ "src/start_ability_utils.cpp", # new ability manager service here - "src/task_data_persistence_mgr.cpp", "src/extension_record_manager.cpp", "src/extension_record.cpp", "src/extension_record_factory.cpp", @@ -91,17 +90,12 @@ abilityms_files = [ "src/call_container.cpp", "src/call_record.cpp", "src/inner_mission_info.cpp", - "src/mission.cpp", - "src/mission_data_storage.cpp", - "src/mission_info_mgr.cpp", "src/mission_listener_controller.cpp", "src/mission_listener_proxy.cpp", "src/rdb/ability_resident_process_rdb.cpp", "src/rdb/parser_util.cpp", "src/rdb/rdb_data_manager.cpp", "src/remote_mission_listener_proxy.cpp", - "src/mission_list_manager.cpp", - "src/mission_list.cpp", "src/scene_board/status_bar_delegate_manager.cpp", "src/scene_board/ui_ability_lifecycle_manager.cpp", "src/deeplink_reserve/deeplink_reserve_config.cpp", diff --git a/services/abilitymgr/include/ability_manager_service.h b/services/abilitymgr/include/ability_manager_service.h index 5b5738fc68..44f33e7708 100644 --- a/services/abilitymgr/include/ability_manager_service.h +++ b/services/abilitymgr/include/ability_manager_service.h @@ -53,7 +53,7 @@ #include "iacquire_share_data_callback_interface.h" #include "interceptor/ability_interceptor_executer.h" #include "iremote_object.h" -#include "mission_list_manager.h" +#include "mission_list_manager_interface.h" #include "parameter.h" #include "pending_want_manager.h" #include "permission_verification.h" @@ -101,6 +101,8 @@ class AbilityManagerService : public SystemAbility, DECLARE_DELAYED_SINGLETON(AbilityManagerService) DECLEAR_SYSTEM_ABILITY(AbilityManagerService) public: + static std::shared_ptr GetPubInstance(); + void OnStart() override; void OnStop() override; @@ -1143,7 +1145,7 @@ public: virtual int UnregisterAbilityFirstFrameStateObserver( const sptr &observer) override; - + bool GetAnimationFlag(); #endif @@ -1703,7 +1705,9 @@ public: virtual int32_t TransferAbilityResultForExtension(const sptr &callerToken, int32_t resultCode, const Want &want) override; - std::shared_ptr GetMissionListManagerByUserId(int32_t userId); + std::shared_ptr GetMissionListManagerByUserId(int32_t userId); + std::shared_ptr GetMissionListWrap(); + /** * Notify ability manager service frozen process. * @@ -1947,8 +1951,8 @@ private: std::shared_ptr GetConnectManagerByToken(const sptr &token); std::shared_ptr GetCurrentPendingWantManager(); std::shared_ptr GetPendingWantManagerByUserId(int32_t userId); - std::unordered_map> GetMissionListManagers(); - std::shared_ptr GetCurrentMissionListManager(); + std::unordered_map> GetMissionListManagers(); + std::shared_ptr GetCurrentMissionListManager(); std::unordered_map> GetUIAbilityManagers(); std::shared_ptr GetCurrentUIAbilityManager(); std::shared_ptr GetUIAbilityManagerByUserId(int32_t userId); diff --git a/services/abilitymgr/include/mission_list_manager.h b/services/abilitymgr/include/mission_list_manager.h index 7d6971b3f7..5580a41d69 100644 --- a/services/abilitymgr/include/mission_list_manager.h +++ b/services/abilitymgr/include/mission_list_manager.h @@ -24,6 +24,7 @@ #include "ability_running_info.h" #include "mission_list.h" +#include "mission_list_manager_interface.h" #include "mission_listener_controller.h" #include "mission_info.h" #include "mission_snapshot.h" @@ -34,16 +35,17 @@ namespace OHOS { namespace AAFwk { -class MissionListManager : public std::enable_shared_from_this { +class MissionListManager : public MissionListManagerInterface, + public std::enable_shared_from_this { public: explicit MissionListManager(int userId); - ~MissionListManager(); + virtual ~MissionListManager(); /** * init ability mission manager. * */ - void Init(); + void Init() override; /** * StartAbility with request. @@ -51,7 +53,7 @@ public: * @param abilityRequest, the request of the service ability to start. * @return Returns ERR_OK on success, others on failure. */ - int StartAbility(AbilityRequest &abilityRequest); + int StartAbility(AbilityRequest &abilityRequest) override; /** * MinimizeAbility, minimize the special ability. @@ -60,24 +62,24 @@ public: * @param fromUser mark the minimize operation source. * @return Returns ERR_OK on success, others on failure. */ - int MinimizeAbility(const sptr &token, bool fromUser); + int MinimizeAbility(const sptr &token, bool fromUser) override; - int RegisterMissionListener(const sptr &listener); + int RegisterMissionListener(const sptr &listener) override; - int UnRegisterMissionListener(const sptr &listener); + int UnRegisterMissionListener(const sptr &listener) override; - int GetMissionInfos(int32_t numMax, std::vector &missionInfos); + int GetMissionInfos(int32_t numMax, std::vector &missionInfos) override; - int GetMissionInfo(int32_t missionId, MissionInfo &missionInfo); + int GetMissionInfo(int32_t missionId, MissionInfo &missionInfo) override; - int MoveMissionToFront(int32_t missionId, std::shared_ptr startOptions = nullptr); + int MoveMissionToFront(int32_t missionId, std::shared_ptr startOptions = nullptr) override; int MoveMissionToFront(int32_t missionId, bool isCallerFromLauncher, bool isRecent, - std::shared_ptr callerAbility, std::shared_ptr startOptions = nullptr); + std::shared_ptr callerAbility, std::shared_ptr startOptions = nullptr) override; - void NotifyMissionFocused(const int32_t missionId); + void NotifyMissionFocused(int32_t missionId) override; - void NotifyMissionUnfocused(const int32_t missionId); + void NotifyMissionUnfocused(int32_t missionId) override; /** * OnAbilityRequestDone, app manager service call this interface after ability request done. @@ -85,9 +87,9 @@ public: * @param token,ability's token. * @param state,the state of ability lift cycle. */ - void OnAbilityRequestDone(const sptr &token, const int32_t state); + void OnAbilityRequestDone(const sptr &token, int32_t state) override; - void OnAppStateChanged(const AppInfo &info); + void OnAppStateChanged(const AppInfo &info) override; /** * attach ability thread ipc object. @@ -96,7 +98,8 @@ public: * @param token, the token of ability. * @return Returns ERR_OK on success, others on failure. */ - int AttachAbilityThread(const sptr &scheduler, const sptr &token); + int AttachAbilityThread(const sptr &scheduler, + const sptr &token) override; /** * start waiting ability. @@ -109,7 +112,7 @@ public: * @param token the search token * @return std::shared_ptr the AbilityRecord of the token */ - std::shared_ptr GetAbilityRecordByToken(const sptr &token) const; + std::shared_ptr GetAbilityRecordByToken(const sptr &token) override; /** * @brief Get the Mission By Id object @@ -125,7 +128,7 @@ public: * @param abilityRecord the ability to move * @return int error code */ - int MoveAbilityToBackground(const std::shared_ptr &abilityRecord); + int MoveAbilityToBackground(const std::shared_ptr &abilityRecord) override; /** * @brief Terminate ability with the given abilityRecord @@ -137,7 +140,7 @@ public: * @return int error code */ int TerminateAbility(const std::shared_ptr &abilityRecord, - int resultCode, const Want *resultWant, bool flag); + int resultCode, const Want *resultWant, bool flag) override; /** * @brief remove the mission list from the mission list manager @@ -154,7 +157,7 @@ public: * @param saveData the saved data * @return execute error code */ - int AbilityTransactionDone(const sptr &token, int state, const PacMap &saveData); + int AbilityTransactionDone(const sptr &token, int state, const PacMap &saveData) override; /** * @brief search the ability from terminating list @@ -162,7 +165,7 @@ public: * @param token the ability token * @return the ability need to terminate */ - std::shared_ptr GetAbilityFromTerminateList(const sptr &token); + std::shared_ptr GetAbilityFromTerminateList(const sptr &token) override; /** * @brief clear the mission with the given id @@ -170,14 +173,14 @@ public: * @param missionId the mission need to delete * @return int error code */ - int ClearMission(int missionId); + int ClearMission(int missionId) override; /** * @brief clear all the missions * * @return int error code */ - int ClearAllMissions(); + int ClearAllMissions() override; void ClearAllMissionsLocked(std::list> &missionList, std::list> &foregroundAbilities, bool searchActive); @@ -188,7 +191,7 @@ public: * @param missionId the id of the mission * @return int error code */ - int SetMissionLockedState(int missionId, bool lockedState); + int SetMissionLockedState(int missionId, bool lockedState) override; /** * @brief schedule to background @@ -204,21 +207,21 @@ public: * @param abilityRecordId the id of ability record * @param isHalf is half */ - void OnTimeOut(uint32_t msgId, int64_t abilityRecordId, bool isHalf = false); + void OnTimeOut(uint32_t msgId, int64_t abilityRecordId, bool isHalf = false) override; /** * @brief handle when ability died * * @param abilityRecord the died ability */ - void OnAbilityDied(std::shared_ptr abilityRecord, int32_t currentUserId); + void OnAbilityDied(std::shared_ptr abilityRecord, int32_t currentUserId) override; /** * @brief handle when call connection died * * @param callRecord the died call connection */ - void OnCallConnectDied(const std::shared_ptr &callRecord); + void OnCallConnectDied(const std::shared_ptr &callRecord) override; /** * Get mission id by target ability token. @@ -226,7 +229,7 @@ public: * @param token target ability token. * @return the missionId of target mission. */ - int32_t GetMissionIdByAbilityToken(const sptr &token); + int32_t GetMissionIdByAbilityToken(const sptr &token) override; /** * Get ability token by target mission id. @@ -234,21 +237,22 @@ public: * @param missionId target missionId. * @return the ability token of target mission. */ - sptr GetAbilityTokenByMissionId(int32_t missionId); + sptr GetAbilityTokenByMissionId(int32_t missionId) override; + std::shared_ptr GetAbilityRecordByMissionId(int32_t missionId) override; /** * @brief dump all abilities * * @param info dump result. */ - void Dump(std::vector& info); + void Dump(std::vector& info) override; /** * @brief dump mission list * * @param info dump result. */ - void DumpMissionList(std::vector &info, bool isClient, const std::string &args = ""); + void DumpMissionList(std::vector &info, bool isClient, const std::string &args = "") override; /** * @brief dump mission list by id with params @@ -256,32 +260,32 @@ public: * @param info dump result. * @param params dump params. */ - void DumpMissionListByRecordId( - std::vector& info, bool isClient, int32_t abilityRecordId, const std::vector& params); + void DumpMissionListByRecordId(std::vector& info, bool isClient, int32_t abilityRecordId, + const std::vector& params) override; /** * @brief dump mission by id * * @param info dump result. */ - void DumpMission(int missionId, std::vector &info); + void DumpMission(int missionId, std::vector &info) override; /** * @brief dump mission infos * * @param info dump result. */ - void DumpMissionInfos(std::vector &info); + void DumpMissionInfos(std::vector &info) override; - void OnAcceptWantResponse(const AAFwk::Want &want, const std::string &flag); + void OnAcceptWantResponse(const AAFwk::Want &want, const std::string &flag) override; - void OnStartSpecifiedAbilityTimeoutResponse(const AAFwk::Want &want); + void OnStartSpecifiedAbilityTimeoutResponse(const AAFwk::Want &want) override; /** * resolve the call ipc of ability for scheduling oncall. * * @param abilityRequest, target ability request. */ - int ResolveLocked(const AbilityRequest &abilityRequest); + int ResolveLocked(const AbilityRequest &abilityRequest) override; /** * release the connection of this call. @@ -289,12 +293,12 @@ public: * @param connect, caller callback ipc. * @param element, target ability name. */ - int ReleaseCallLocked(const sptr &connect, const AppExecFwk::ElementName &element); + int ReleaseCallLocked(const sptr &connect, const AppExecFwk::ElementName &element) override; /** * @brief register snapshotHandler * @param handler the snapshotHandler */ - void RegisterSnapshotHandler(const sptr& handler); + void RegisterSnapshotHandler(const sptr& handler) override; /** * @brief Get the Mission Snapshot object @@ -305,8 +309,8 @@ public: * @return Returns true on success, false on failure. */ bool GetMissionSnapshot(int32_t missionId, const sptr& abilityToken, - MissionSnapshot& missionSnapshot, bool isLowResolution); - void GetAbilityRunningInfos(std::vector &info, bool isPerm); + MissionSnapshot& missionSnapshot, bool isLowResolution) override; + void GetAbilityRunningInfos(std::vector &info, bool isPerm) override; /** * Called to update mission snapshot. @@ -314,7 +318,7 @@ public: * @param pixelMap The snapshot. */ #ifdef SUPPORT_SCREEN - void UpdateSnapShot(const sptr &token, const std::shared_ptr &pixelMap); + void UpdateSnapShot(const sptr &token, const std::shared_ptr &pixelMap) override; #endif // SUPPORT_SCREEN /** @@ -324,7 +328,7 @@ public: */ int32_t GetAbilityNumber(const AppExecFwk::ElementName &element) const; - void EnableRecoverAbility(int32_t missionId); + void EnableRecoverAbility(int32_t missionId) override; #ifdef ABILITY_COMMAND_FOR_TEST /** @@ -333,32 +337,34 @@ public: * @param abilityRecordId The Ability Record Id. * @return Returns ERR_OK on success, others on failure. */ - int BlockAbility(int abilityRecordId); + int BlockAbility(int abilityRecordId) override; #endif - void UninstallApp(const std::string &bundleName, int32_t uid); + void UninstallApp(const std::string &bundleName, int32_t uid) override; - bool IsStarted(); - void PauseManager(); - void ResumeManager(); + bool IsStarted() override; + void PauseManager() override; + void ResumeManager() override; void SetMissionANRStateByTokens(const std::vector> &tokens); - int32_t IsValidMissionIds(const std::vector &missionIds, std::vector &results); + int32_t IsValidMissionIds(const std::vector &missionIds, + std::vector &results) override; - int DoAbilityForeground(std::shared_ptr &abilityRecord, uint32_t flag); + int DoAbilityForeground(std::shared_ptr &abilityRecord, uint32_t flag) override; - void GetActiveAbilityList(int32_t uid, std::vector &abilityList, int32_t pid = NO_PID); + void GetActiveAbilityList(int32_t uid, std::vector &abilityList, int32_t pid = NO_PID) override; - void CallRequestDone(const std::shared_ptr &abilityRecord, const sptr &callStub); + void CallRequestDone(const std::shared_ptr &abilityRecord, + const sptr &callStub) override; - int SetMissionContinueState(const sptr &token, const int32_t missionId, - const AAFwk::ContinueState &state); + int SetMissionContinueState(const sptr &token, int32_t missionId, + const AAFwk::ContinueState &state) override; - bool IsAbilityStarted(AbilityRequest &abilityRequest, std::shared_ptr &targetRecord); + bool IsAbilityStarted(AbilityRequest &abilityRequest, std::shared_ptr &targetRecord) override; + + void SignRestartAppFlag(const std::string &bundleName) override; - void SignRestartAppFlag(const std::string &bundleName); - void SetAnimationFlag(bool IsAnimationEnabled); #ifdef SUPPORT_SCREEN public: @@ -369,7 +375,7 @@ public: * @param label target label. * @return Return 0 if success. */ - int SetMissionLabel(const sptr &abilityToken, const std::string &label); + int SetMissionLabel(const sptr &abilityToken, const std::string &label) override; /** * Set mission icon of this ability. @@ -378,9 +384,9 @@ public: * @param icon target label. * @return Return 0 if success. */ - int SetMissionIcon(const sptr &token, const std::shared_ptr &icon); + int SetMissionIcon(const sptr &token, const std::shared_ptr &icon) override; - void CompleteFirstFrameDrawing(const sptr &abilityToken) const; + void CompleteFirstFrameDrawing(const sptr &abilityToken) override; void PostMissionLabelUpdateTask(int missionId) const; diff --git a/services/abilitymgr/include/mission_list_manager_interface.h b/services/abilitymgr/include/mission_list_manager_interface.h new file mode 100644 index 0000000000..c313f11189 --- /dev/null +++ b/services/abilitymgr/include/mission_list_manager_interface.h @@ -0,0 +1,143 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ABILITY_RUNTIME_MISSION_LIST_MANAGER_INTERFACE_H +#define OHOS_ABILITY_RUNTIME_MISSION_LIST_MANAGER_INTERFACE_H + +#include +#include +#include + +#include "ability_running_info.h" +#include "mission_list.h" +#include "mission_listener_controller.h" +#include "mission_info.h" +#include "mission_snapshot.h" +#include "snapshot.h" +#include "start_options.h" +#include "want.h" +#include "iability_info_callback.h" + +namespace OHOS { +namespace AAFwk { +class MissionListManagerInterface { +public: + virtual ~MissionListManagerInterface() = default; + + virtual void Init() = 0; + virtual int StartAbility(AbilityRequest &abilityRequest) = 0; + virtual int MinimizeAbility(const sptr &token, bool fromUser) = 0; + virtual int RegisterMissionListener(const sptr &listener) = 0; + virtual int UnRegisterMissionListener(const sptr &listener) = 0; + virtual int GetMissionInfos(int32_t numMax, std::vector &missionInfos) = 0; + virtual int GetMissionInfo(int32_t missionId, MissionInfo &missionInfo) = 0; + virtual int MoveMissionToFront(int32_t missionId, std::shared_ptr startOptions = nullptr) = 0; + virtual int MoveMissionToFront(int32_t missionId, bool isCallerFromLauncher, bool isRecent, + std::shared_ptr callerAbility, std::shared_ptr startOptions = nullptr) = 0; + virtual void NotifyMissionFocused(int32_t missionId) = 0; + virtual void NotifyMissionUnfocused(int32_t missionId) = 0; + virtual void OnAbilityRequestDone(const sptr &token, int32_t state) = 0; + virtual void OnAppStateChanged(const AppInfo &info) = 0; + virtual int AttachAbilityThread(const sptr &scheduler, + const sptr &token) = 0; + virtual std::shared_ptr GetAbilityRecordByToken(const sptr &token) = 0; + virtual std::shared_ptr GetAbilityRecordByMissionId(int missionId) = 0; + virtual int MoveAbilityToBackground(const std::shared_ptr &abilityRecord) = 0; + virtual int TerminateAbility(const std::shared_ptr &abilityRecord, + int resultCode, const Want *resultWant, bool flag) = 0; + virtual int AbilityTransactionDone(const sptr &token, int state, const PacMap &saveData) = 0; + virtual std::shared_ptr GetAbilityFromTerminateList(const sptr &token) = 0; + virtual int ClearMission(int missionId) = 0; + virtual int ClearAllMissions() = 0; + + virtual int SetMissionLockedState(int missionId, bool lockedState) = 0; + virtual void OnTimeOut(uint32_t msgId, int64_t abilityRecordId, bool isHalf = false) = 0; + virtual void OnAbilityDied(std::shared_ptr abilityRecord, int32_t currentUserId) = 0; + virtual void OnCallConnectDied(const std::shared_ptr &callRecord) = 0; + virtual int32_t GetMissionIdByAbilityToken(const sptr &token) = 0; + virtual sptr GetAbilityTokenByMissionId(int32_t missionId) = 0; + + virtual void Dump(std::vector &info) = 0; + + virtual void DumpMissionList(std::vector &info, bool isClient, const std::string &args = ""); + + virtual void DumpMissionListByRecordId(std::vector &info, bool isClient, int32_t abilityRecordId, + const std::vector ¶ms) = 0; + virtual void DumpMission(int missionId, std::vector &info) = 0; + virtual void DumpMissionInfos(std::vector &info) = 0; + virtual void OnAcceptWantResponse(const AAFwk::Want &want, const std::string &flag) = 0; + virtual void OnStartSpecifiedAbilityTimeoutResponse(const AAFwk::Want &want) = 0; + virtual int ResolveLocked(const AbilityRequest &abilityRequest) = 0; + + virtual int ReleaseCallLocked(const sptr &connect, + const AppExecFwk::ElementName &element) = 0; + virtual void RegisterSnapshotHandler(const sptr &handler) = 0; + virtual bool GetMissionSnapshot(int32_t missionId, const sptr &abilityToken, + MissionSnapshot &missionSnapshot, bool isLowResolution) = 0; + virtual void GetAbilityRunningInfos(std::vector &info, bool isPerm) = 0; + +#ifdef SUPPORT_SCREEN + virtual void UpdateSnapShot(const sptr &token, + const std::shared_ptr &pixelMap) = 0; +#endif // SUPPORT_SCREEN + + virtual void EnableRecoverAbility(int32_t missionId) = 0; + +#ifdef ABILITY_COMMAND_FOR_TEST + virtual int BlockAbility(int abilityRecordId) = 0; +#endif + + virtual void UninstallApp(const std::string &bundleName, int32_t uid) = 0; + + virtual bool IsStarted() = 0; + virtual void PauseManager() = 0; + virtual void ResumeManager() = 0; + virtual int32_t IsValidMissionIds(const std::vector &missionIds, + std::vector &results) = 0; + virtual int DoAbilityForeground(std::shared_ptr &abilityRecord, uint32_t flag); + virtual void GetActiveAbilityList(int32_t uid, std::vector &abilityList, int32_t pid = NO_PID) = 0; + virtual void CallRequestDone(const std::shared_ptr &abilityRecord, + const sptr &callStub) = 0; + virtual int SetMissionContinueState(const sptr &token, int32_t missionId, + const AAFwk::ContinueState &state) = 0; + + virtual bool IsAbilityStarted(AbilityRequest &abilityRequest, std::shared_ptr &targetRecord) = 0; + virtual void SignRestartAppFlag(const std::string &bundleName) = 0; +#ifdef SUPPORT_SCREEN +public: + virtual int SetMissionLabel(const sptr &abilityToken, const std::string &label) = 0; + virtual int SetMissionIcon(const sptr &token, const std::shared_ptr &icon) = 0; + virtual void CompleteFirstFrameDrawing(const sptr &abilityToken) = 0; +#endif +}; + +class MissionListWrap { +public: + virtual ~MissionListWrap() = default; + virtual std::shared_ptr CreateMissionListManager(int32_t userId) = 0; + virtual void RemoveUserDir(int32_t userId) = 0; + virtual void InitMissionInfoMgr(int32_t userId) = 0; + virtual void SetMissionAbilityState(int32_t missionId, AbilityState state) = 0; + virtual int32_t GetInnerMissionInfoById(int32_t missionId, InnerMissionInfo &innerMissionInfo) = 0; +#ifdef SUPPORT_SCREEN + virtual std::shared_ptr GetSnapshot(int32_t missionId) = 0; +#endif +}; +} // namespace AAFwk +} // namespace OHOS + +extern "C" __attribute__((visibility("default"))) OHOS::AAFwk::MissionListWrap* CreateMissionListWrap(); + +#endif // OHOS_ABILITY_RUNTIME_MISSION_LIST_MANAGER_INTERFACE_H diff --git a/services/abilitymgr/include/sub_managers_helper.h b/services/abilitymgr/include/sub_managers_helper.h index c8b5e022cd..369182b34b 100644 --- a/services/abilitymgr/include/sub_managers_helper.h +++ b/services/abilitymgr/include/sub_managers_helper.h @@ -24,7 +24,7 @@ #include "ability_event_handler.h" #include "cpp/mutex.h" #include "data_ability_manager.h" -#include "mission_list_manager.h" +#include "mission_list_manager_interface.h" #include "nocopyable.h" #include "pending_want_manager.h" #include "scene_board/ui_ability_lifecycle_manager.h" @@ -32,10 +32,11 @@ namespace OHOS { namespace AAFwk { +using CreateMissionListMgrFunc = MissionListWrap*(*)(); class SubManagersHelper { public: SubManagersHelper(std::shared_ptr taskHandler, std::shared_ptr eventHandler); - virtual ~SubManagersHelper() = default; + virtual ~SubManagersHelper(); void InitSubManagers(int userId, bool switchUser); void InitMissionListManager(int userId, bool switchUser); @@ -59,10 +60,10 @@ public: std::shared_ptr GetCurrentPendingWantManager(); std::shared_ptr GetPendingWantManagerByUserId(int32_t userId); - std::unordered_map> GetMissionListManagers(); - std::shared_ptr GetCurrentMissionListManager(); - std::shared_ptr GetMissionListManagerByUserId(int32_t userId); - std::shared_ptr GetMissionListManagerByUid(int32_t uid); + std::unordered_map> GetMissionListManagers(); + std::shared_ptr GetCurrentMissionListManager(); + std::shared_ptr GetMissionListManagerByUserId(int32_t userId); + std::shared_ptr GetMissionListManagerByUid(int32_t uid); std::unordered_map> GetUIAbilityManagers(); std::shared_ptr GetCurrentUIAbilityManager(); @@ -75,6 +76,8 @@ public: bool VerificationAllToken(const sptr &token); bool VerificationAllTokenForConnectManagers(const sptr &token); + std::shared_ptr GetMissionListWrap(); + std::shared_ptr CreateMissionListMgr(int32_t userId); private: DISALLOW_COPY_AND_MOVE(SubManagersHelper); @@ -88,10 +91,14 @@ private: std::shared_ptr currentDataAbilityManager_; std::unordered_map> pendingWantManagers_; std::shared_ptr currentPendingWantManager_; - std::unordered_map> missionListManagers_; - std::shared_ptr currentMissionListManager_; + std::unordered_map> missionListManagers_; + std::shared_ptr currentMissionListManager_; std::unordered_map> uiAbilityManagers_; std::shared_ptr currentUIAbilityManager_; + + std::mutex missionListWrapMutex_; + void* missionLibHandle_ = nullptr; + std::shared_ptr missionListWrap_; }; } // namespace AAFwk } // namespace OHOS diff --git a/services/abilitymgr/libabilityms.map b/services/abilitymgr/libabilityms.map index 1398359572..3522bef1f4 100644 --- a/services/abilitymgr/libabilityms.map +++ b/services/abilitymgr/libabilityms.map @@ -19,6 +19,7 @@ *AbilityConnectionStub*; *AbilityConnectManager*; *AbilityEventHandler*; + *AbilityFirstFrameStateObserverManager*; *AbilityInterceptorExecuter*; *AbilityManagerService*; *AbilityManagerStub*; @@ -27,6 +28,7 @@ *AbilitySchedulerProxy*; *AbilitySchedulerStub*; *AmsConfigurationParameter*; + *AppExitReasonDataManager*; *ApplicationAnrListener*; *AppScheduler*; *AtomicServiceStatusCallback*; diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 2c240468b4..3b26edfd44 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -338,6 +338,11 @@ AbilityManagerService::AbilityManagerService() AbilityManagerService::~AbilityManagerService() {} +std::shared_ptr AbilityManagerService::GetPubInstance() +{ + return DelayedSingleton::GetInstance(); +} + void AbilityManagerService::OnStart() { if (state_ == ServiceRunningState::STATE_RUNNING) { @@ -4751,9 +4756,13 @@ int32_t AbilityManagerService::GetMissionIdByToken(const sptr &to bool AbilityManagerService::IsAbilityControllerStartById(int32_t missionId) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); + auto missionListWrap = GetMissionListWrap(); + if (missionListWrap == nullptr) { + TAG_LOGW(AAFwkTag::ABILITYMGR, "missionListWrap null."); + return false; + } InnerMissionInfo innerMissionInfo; - int getMission = DelayedSingleton::GetInstance()->GetInnerMissionInfoById( - missionId, innerMissionInfo); + int getMission = missionListWrap->GetInnerMissionInfoById(missionId, innerMissionInfo); if (getMission != ERR_OK) { TAG_LOGE(AAFwkTag::ABILITYMGR, "cannot find mission info from MissionInfoList by missionId: %{public}d", missionId); @@ -4944,7 +4953,7 @@ void AbilityManagerService::DumpSysMissionListInner( DumpSysMissionListInnerBySCB(args, info, isClient, isUserID, userId); return; } - std::shared_ptr targetManager; + std::shared_ptr targetManager; if (isUserID) { auto missionListManager = GetMissionListManagerByUserId(userId); if (missionListManager == nullptr) { @@ -5004,7 +5013,7 @@ void AbilityManagerService::DumpSysAbilityInner( DumpSysAbilityInnerBySCB(args, info, isClient, isUserID, userId); return; } - std::shared_ptr targetManager; + std::shared_ptr targetManager; if (isUserID) { auto missionListManager = GetMissionListManagerByUserId(userId); if (missionListManager == nullptr) { @@ -6440,27 +6449,33 @@ std::shared_ptr AbilityManagerService::GetPendingWantManager return subManagersHelper_->GetPendingWantManagerByUserId(userId); } -std::unordered_map> AbilityManagerService::GetMissionListManagers() +std::unordered_map> AbilityManagerService::GetMissionListManagers() { if (subManagersHelper_ == nullptr) { TAG_LOGE(AAFwkTag::ABILITYMGR, "pointer is nullptr."); - return std::unordered_map>(); + return std::unordered_map>(); } return subManagersHelper_->GetMissionListManagers(); } -std::shared_ptr AbilityManagerService::GetCurrentMissionListManager() +std::shared_ptr AbilityManagerService::GetCurrentMissionListManager() { CHECK_POINTER_AND_RETURN(subManagersHelper_, nullptr); return subManagersHelper_->GetCurrentMissionListManager(); } -std::shared_ptr AbilityManagerService::GetMissionListManagerByUserId(int32_t userId) +std::shared_ptr AbilityManagerService::GetMissionListManagerByUserId(int32_t userId) { CHECK_POINTER_AND_RETURN(subManagersHelper_, nullptr); return subManagersHelper_->GetMissionListManagerByUserId(userId); } +std::shared_ptr AbilityManagerService::GetMissionListWrap() +{ + CHECK_POINTER_AND_RETURN(subManagersHelper_, nullptr); + return subManagersHelper_->GetMissionListWrap(); +} + std::unordered_map> AbilityManagerService::GetUIAbilityManagers() { if (subManagersHelper_ == nullptr) { @@ -9462,12 +9477,7 @@ int32_t AbilityManagerService::AcquireShareData( } else { auto missionListManager = GetCurrentMissionListManager(); CHECK_POINTER_AND_RETURN(missionListManager, ERR_INVALID_VALUE); - std::shared_ptr mission = missionListManager->GetMissionById(missionId); - if (!mission) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "mission is null."); - return ERR_INVALID_VALUE; - } - abilityRecord = mission->GetAbilityRecord(); + abilityRecord = missionListManager->GetAbilityRecordByMissionId(missionId); } if (!abilityRecord) { TAG_LOGE(AAFwkTag::ABILITYMGR, "abilityRecord is null."); diff --git a/services/abilitymgr/src/ability_record.cpp b/services/abilitymgr/src/ability_record.cpp index a9405f27e3..0becae76dd 100644 --- a/services/abilitymgr/src/ability_record.cpp +++ b/services/abilitymgr/src/ability_record.cpp @@ -701,7 +701,13 @@ void AbilityRecord::StartingWindowHot() return; } - auto pixelMap = DelayedSingleton::GetInstance()->GetSnapshot(missionId_); + auto missionListWrap = DelayedSingleton::GetInstance()->GetMissionListWrap(); + if (missionListWrap == nullptr) { + TAG_LOGW(AAFwkTag::ABILITYMGR, "missionListWrap null."); + return; + } + + auto pixelMap = missionListWrap->GetSnapshot(missionId_); if (!pixelMap) { TAG_LOGW(AAFwkTag::ABILITYMGR, "Get snapshot failed."); } @@ -767,9 +773,14 @@ void AbilityRecord::ProcessForegroundAbility(bool isRecent, const AbilityRequest std::shared_ptr AbilityRecord::GetWantFromMission() const { + auto missionListWrap = DelayedSingleton::GetInstance()->GetMissionListWrap(); + if (missionListWrap == nullptr) { + TAG_LOGW(AAFwkTag::ABILITYMGR, "missionListWrap null."); + return nullptr; + } + InnerMissionInfo innerMissionInfo; - int getMission = DelayedSingleton::GetInstance()->GetInnerMissionInfoById( - missionId_, innerMissionInfo); + int getMission = missionListWrap->GetInnerMissionInfoById(missionId_, innerMissionInfo); if (getMission != ERR_OK) { TAG_LOGE( AAFwkTag::ABILITYMGR, "cannot find mission info from MissionInfoList by missionId: %{public}d", missionId_); @@ -1109,7 +1120,13 @@ void AbilityRecord::StartingWindowHot(const std::shared_ptr &start return; } - auto pixelMap = DelayedSingleton::GetInstance()->GetSnapshot(missionId_); + auto missionListWrap = DelayedSingleton::GetInstance()->GetMissionListWrap(); + if (missionListWrap == nullptr) { + TAG_LOGW(AAFwkTag::ABILITYMGR, "missionListWrap null."); + return; + } + + auto pixelMap = missionListWrap->GetSnapshot(missionId_); if (!pixelMap) { TAG_LOGW(AAFwkTag::ABILITYMGR, "%{public}s, Get snapshot failed.", __func__); } @@ -1407,7 +1424,9 @@ void AbilityRecord::SetAbilityStateInner(AbilityState state) } } - DelayedSingleton::GetInstance()->SetMissionAbilityState(missionId_, currentState_); + auto missionListWrap = DelayedSingleton::GetInstance()->GetMissionListWrap(); + CHECK_POINTER(missionListWrap); + missionListWrap->SetMissionAbilityState(missionId_, currentState_); } #endif // SUPPORT_SCREEN bool AbilityRecord::GetAbilityForegroundingFlag() const diff --git a/services/abilitymgr/src/mission_list_manager.cpp b/services/abilitymgr/src/mission_list_manager.cpp index c9b5308439..ca25c447ff 100644 --- a/services/abilitymgr/src/mission_list_manager.cpp +++ b/services/abilitymgr/src/mission_list_manager.cpp @@ -454,7 +454,7 @@ int MissionListManager::StartAbilityLocked(const std::shared_ptr if (supportBackToOtherMissionStack && needBackToOtherMissionStack) { // mark if need back to other mission stack targetAbilityRecord->SetNeedBackToOtherMissionStack(true); - auto focusAbility = OHOS::DelayedSingleton::GetInstance()->GetFocusAbility(); + auto focusAbility = AbilityManagerService::GetPubInstance()->GetFocusAbility(); if (focusAbility && (GetMissionIdByAbilityTokenInner(focusAbility->GetToken()) != -1)) { targetAbilityRecord->SetOtherMissionStackAbilityRecord(focusAbility); } else { @@ -751,10 +751,11 @@ std::shared_ptr MissionListManager::GetTargetMissionListByDefault( return nullptr; } - auto missionListMgr = DelayedSingleton::GetInstance()->GetMissionListManagerByUserId( + auto missionListMgr = AbilityManagerService::GetPubInstance()->GetMissionListManagerByUserId( callerAbility->GetOwnerMissionUserId()); CHECK_POINTER_AND_RETURN(missionListMgr, nullptr); - auto callerMission = missionListMgr->GetMissionById(callerAbility->GetMissionId()); + auto callerMission = reinterpret_cast(missionListMgr.get())->GetMissionById( + callerAbility->GetMissionId()); CHECK_POINTER_AND_RETURN(callerMission, nullptr); auto callerList = callerMission->GetMissionList(); CHECK_POINTER_AND_RETURN(callerList, nullptr); @@ -1009,7 +1010,7 @@ int MissionListManager::AttachAbilityThread(const sptr &sched TAG_LOGD(AAFwkTag::ABILITYMGR, "AbilityMS attach abilityThread, name is %{public}s.", abilityRecord->GetAbilityInfo().name.c_str()); - auto eventHandler = DelayedSingleton::GetInstance()->GetEventHandler(); + auto eventHandler = AbilityManagerService::GetPubInstance()->GetEventHandler(); CHECK_POINTER_AND_RETURN_LOG(eventHandler, ERR_INVALID_VALUE, "Fail to get AbilityEventHandler."); eventHandler->RemoveEvent(AbilityManagerService::LOAD_TIMEOUT_MSG, abilityRecord->GetAbilityRecordId()); abilityRecord->SetLoading(false); @@ -1034,7 +1035,7 @@ int MissionListManager::AttachAbilityThread(const sptr &sched abilityRecord->CallRequest(); } - auto taskHandler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto taskHandler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); CHECK_POINTER_AND_RETURN_LOG(taskHandler, ERR_INVALID_VALUE, "Fail to get AbilityTaskHandler."); auto taskName = std::to_string(abilityRecord->GetMissionId()) + "_cold"; taskHandler->CancelTask(taskName); @@ -1047,7 +1048,7 @@ int MissionListManager::AttachAbilityThread(const sptr &sched return ERR_OK; } -void MissionListManager::OnAbilityRequestDone(const sptr &token, const int32_t state) +void MissionListManager::OnAbilityRequestDone(const sptr &token, int32_t state) { TAG_LOGD(AAFwkTag::ABILITYMGR, "Ability request state %{public}d done.", state); std::lock_guard guard(managerLock_); @@ -1123,7 +1124,7 @@ void MissionListManager::OnAppStateChanged(const AppInfo &info) } std::shared_ptr MissionListManager::GetAbilityRecordByToken( - const sptr &token) const + const sptr &token) { std::lock_guard guard(managerLock_); return GetAbilityRecordByTokenInner(token); @@ -1250,12 +1251,12 @@ int MissionListManager::DispatchForeground(const std::shared_ptr AbilityState::FOREGROUNDING, abilityRecord->GetAbilityState()); return ERR_INVALID_VALUE; } - auto eventHandler = DelayedSingleton::GetInstance()->GetEventHandler(); + auto eventHandler = AbilityManagerService::GetPubInstance()->GetEventHandler(); CHECK_POINTER_AND_RETURN_LOG(eventHandler, ERR_INVALID_VALUE, "Fail to get AbilityEventHandler."); eventHandler->RemoveEvent(AbilityManagerService::FOREGROUND_TIMEOUT_MSG, abilityRecord->GetAbilityRecordId()); g_deleteLifecycleEventTask(abilityRecord->GetToken(), FreezeUtil::TimeoutState::FOREGROUND); auto self(weak_from_this()); - auto taskHandler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto taskHandler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); CHECK_POINTER_AND_RETURN_LOG(taskHandler, ERR_INVALID_VALUE, "Fail to get AbilityTaskHandler."); if (success) { #ifdef SUPPORT_SCREEN @@ -1377,7 +1378,7 @@ void MissionListManager::TerminatePreviousAbility(const std::shared_ptr &abilityRecord) { - auto handler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); CHECK_POINTER_AND_RETURN_LOG(handler, ERR_INVALID_VALUE, "Fail to get AbilityTasktHandler."); CHECK_POINTER_AND_RETURN(abilityRecord, ERR_INVALID_VALUE); @@ -1759,7 +1760,7 @@ int MissionListManager::DispatchTerminate(const std::shared_ptr & } // remove terminate timeout task. - auto handler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); CHECK_POINTER_AND_RETURN_LOG(handler, ERR_INVALID_VALUE, "Fail to get AbilityTasktHandler."); handler->CancelTask("terminate_" + std::to_string(abilityRecord->GetAbilityRecordId())); auto self(shared_from_this()); @@ -1771,7 +1772,7 @@ int MissionListManager::DispatchTerminate(const std::shared_ptr & void MissionListManager::DelayCompleteTerminate(const std::shared_ptr &abilityRecord) { - auto handler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); CHECK_POINTER(handler); PrintTimeOutLog(abilityRecord, AbilityManagerService::TERMINATE_TIMEOUT_MSG); @@ -1977,7 +1978,7 @@ void MissionListManager::ClearAllMissionsLocked(std::list::GetInstance(); + auto abilityMs_ = AbilityManagerService::GetPubInstance(); if (abilityMs_->IsBackgroundTaskUid(mission->GetAbilityRecord()->GetUid())) { TAG_LOGI(AAFwkTag::ABILITYMGR, "the mission is background task, do not need clear"); continue; @@ -2083,7 +2084,7 @@ void MissionListManager::MoveToBackgroundTask(const std::shared_ptrSetIsNewWant(false); if (abilityRecord->lifeCycleStateInfo_.sceneFlag != SCENE_FLAG_KEYGUARD && !abilityRecord->IsClearMissionFlag() && - !(isClose && OHOS::DelayedSingleton::GetInstance()->GetAnimationFlag())) { + !(isClose && AbilityManagerService::GetPubInstance()->GetAnimationFlag())) { UpdateMissionSnapshot(abilityRecord); } @@ -2117,7 +2118,7 @@ void MissionListManager::NotifyMissionCreated(const std::shared_ptr::GetInstance()->GetTaskHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); if (handler == nullptr) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Fail to get EventHandler, do not post mission label update message."); return; @@ -2393,7 +2394,7 @@ void MissionListManager::HandleTimeoutAndResumeAbility(const std::shared_ptr &callerAbility) { - auto abilityManagerService = DelayedSingleton::GetInstance(); + auto abilityManagerService = AbilityManagerService::GetPubInstance(); CHECK_POINTER(abilityManagerService); auto handler = abilityManagerService->GetTaskHandler(); CHECK_POINTER(handler); @@ -2537,7 +2538,7 @@ void MissionListManager::OnAbilityDied(std::shared_ptr abilityRec return; } - auto handler = DelayedSingleton::GetInstance()->GetEventHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetEventHandler(); CHECK_POINTER_LOG(handler, "Get AbilityEventHandler failed."); if (abilityRecord->GetAbilityState() == AbilityState::INITIAL) { handler->RemoveEvent(AbilityManagerService::LOAD_TIMEOUT_MSG, abilityRecord->GetAbilityRecordId()); @@ -2546,7 +2547,7 @@ void MissionListManager::OnAbilityDied(std::shared_ptr abilityRec if (abilityRecord->GetAbilityState() == AbilityState::FOREGROUNDING) { handler->RemoveEvent(AbilityManagerService::FOREGROUND_TIMEOUT_MSG, abilityRecord->GetAbilityRecordId()); } - auto taskHandler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto taskHandler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); CHECK_POINTER_LOG(taskHandler, "Fail to get AbilityTaskHandler."); if (abilityRecord->GetAbilityState() == AbilityState::BACKGROUNDING) { taskHandler->CancelTask("background_" + std::to_string(abilityRecord->GetAbilityRecordId())); @@ -2606,7 +2607,7 @@ std::shared_ptr MissionListManager::GetTargetMissionList(int missio // generate a new mission and missionList AbilityRequest abilityRequest; - int generateAbility = DelayedSingleton::GetInstance()->GenerateAbilityRequest( + int generateAbility = AbilityManagerService::GetPubInstance()->GenerateAbilityRequest( innerMissionInfo.missionInfo.want, DEFAULT_INVAL_VALUE, abilityRequest, nullptr, userId_); if (generateAbility != ERR_OK) { TAG_LOGE(AAFwkTag::ABILITYMGR, "cannot find generate ability request, missionId: %{public}d", missionId); @@ -2669,12 +2670,17 @@ sptr MissionListManager::GetAbilityTokenByMissionId(int32_t missi return defaultStandardList_->GetAbilityTokenByMissionId((missionId)); } +std::shared_ptr MissionListManager::GetAbilityRecordByMissionId(int32_t missionId) +{ + return Token::GetAbilityRecordByToken(GetAbilityTokenByMissionId(missionId)); +} + void MissionListManager::PostStartWaitingAbility() { auto self(shared_from_this()); auto startWaitingAbilityTask = [self]() { self->StartWaitingAbility(); }; - auto handler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); CHECK_POINTER_LOG(handler, "Fail to get AbilityTaskHandler."); /* PostTask to trigger start Ability from waiting queue */ @@ -2779,7 +2785,7 @@ void MissionListManager::HandleAbilityDiedByDefault(std::shared_ptr::GetInstance(); + auto abilityManagerService = AbilityManagerService::GetPubInstance(); CHECK_POINTER(abilityManagerService); auto handler = abilityManagerService->GetTaskHandler(); CHECK_POINTER(handler); @@ -2825,7 +2831,7 @@ void MissionListManager::BackToLauncher() launcherRootAbility->ProcessForegroundAbility(0); } -int MissionListManager::SetMissionContinueState(const sptr &token, const int32_t missionId, +int MissionListManager::SetMissionContinueState(const sptr &token, int32_t missionId, const AAFwk::ContinueState &state) { TAG_LOGD(AAFwkTag::ABILITYMGR, "SetMissionContinueState start. Mission id: %{public}d, state: %{public}d", @@ -2896,7 +2902,7 @@ int MissionListManager::SetMissionIcon(const sptr &token, const s return 0; } -void MissionListManager::CompleteFirstFrameDrawing(const sptr &abilityToken) const +void MissionListManager::CompleteFirstFrameDrawing(const sptr &abilityToken) { FinishAsyncTrace(HITRACE_TAG_ABILITY_MANAGER, TRACE_ATOMIC_SERVICE, TRACE_ATOMIC_SERVICE_ID); TAG_LOGD(AAFwkTag::ABILITYMGR, "CompleteFirstFrameDrawing called."); @@ -2919,7 +2925,7 @@ void MissionListManager::CompleteFirstFrameDrawing(const sptr &ab abilityRecord->SetCompleteFirstFrameDrawing(true); AppExecFwk::AbilityFirstFrameStateObserverManager::GetInstance(). HandleOnFirstFrameState(abilityRecord); - auto handler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); if (handler == nullptr) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Fail to get Ability task handler."); return; @@ -2932,7 +2938,7 @@ void MissionListManager::CompleteFirstFrameDrawing(const sptr &ab return; } mgr->NotifyMissionCreated(abilityRecord); - if (DelayedSingleton::GetInstance()->IsDmsAlive()) { + if (AbilityManagerService::GetPubInstance()->IsDmsAlive()) { mgr->UpdateMissionSnapshot(abilityRecord); } }; @@ -2962,7 +2968,7 @@ void MissionListManager::ProcessPreload(const std::shared_ptr &re Closure MissionListManager::GetCancelStartingWindowTask(const std::shared_ptr &abilityRecord) const { - auto windowHandler = DelayedSingleton::GetInstance()->GetWMSHandler(); + auto windowHandler = AbilityManagerService::GetPubInstance()->GetWMSHandler(); if (!windowHandler) { TAG_LOGE(AAFwkTag::ABILITYMGR, "%{public}s, Get WMS handler failed.", __func__); return nullptr; @@ -2980,7 +2986,7 @@ Closure MissionListManager::GetCancelStartingWindowTask(const std::shared_ptr &abilityRecord) const { TAG_LOGI(AAFwkTag::ABILITYMGR, "call"); - auto handler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); if (!handler) { TAG_LOGE(AAFwkTag::ABILITYMGR, "Fail to get AbilityTaskHandler."); return; @@ -3613,7 +3619,7 @@ bool MissionListManager::CheckLimit() if (IsAppLastAbility(earliestMission->GetAbilityRecord())) { ExitReason exitReason = { REASON_RESOURCE_CONTROL, "Already reach ability max limit, terminate earliest ability." }; - OHOS::DelayedSingleton::GetInstance()->RecordAppExitReason(exitReason); + AbilityManagerService::GetPubInstance()->RecordAppExitReason(exitReason); } TAG_LOGI(AAFwkTag::ABILITYMGR, "already reach limit instance. limit: %{public}d, and terminate earliestAbility success.", @@ -3696,12 +3702,12 @@ void MissionListManager::GetAbilityRunningInfos(std::vector } if (isPerm) { - DelayedSingleton::GetInstance()->GetAbilityRunningInfo(info, ability); + AbilityManagerService::GetPubInstance()->GetAbilityRunningInfo(info, ability); } else { auto callingTokenId = IPCSkeleton::GetCallingTokenID(); auto tokenID = ability->GetApplicationInfo().accessTokenId; if (callingTokenId == tokenID) { - DelayedSingleton::GetInstance()->GetAbilityRunningInfo(info, ability); + AbilityManagerService::GetPubInstance()->GetAbilityRunningInfo(info, ability); } } }; @@ -3725,7 +3731,7 @@ void MissionListManager::GetAbilityRunningInfos(std::vector void MissionListManager::UninstallApp(const std::string &bundleName, int32_t uid) { TAG_LOGI(AAFwkTag::ABILITYMGR, "Uninstall app, bundleName: %{public}s, uid:%{public}d", bundleName.c_str(), uid); - auto abilityManagerService = DelayedSingleton::GetInstance(); + auto abilityManagerService = AbilityManagerService::GetPubInstance(); CHECK_POINTER(abilityManagerService); auto handler = abilityManagerService->GetTaskHandler(); CHECK_POINTER(handler); @@ -3983,7 +3989,7 @@ bool MissionListManager::UpdateAbilityRecordLaunchReason( return true; } -void MissionListManager::NotifyMissionFocused(const int32_t missionId) +void MissionListManager::NotifyMissionFocused(int32_t missionId) { if (listenerController_) { listenerController_->NotifyMissionFocused(missionId); @@ -3992,7 +3998,7 @@ void MissionListManager::NotifyMissionFocused(const int32_t missionId) } } -void MissionListManager::NotifyMissionUnfocused(const int32_t missionId) +void MissionListManager::NotifyMissionUnfocused(int32_t missionId) { if (listenerController_) { listenerController_->NotifyMissionUnfocused(missionId); @@ -4140,7 +4146,7 @@ int MissionListManager::PrepareClearMissionLocked(int missionId, const std::shar mgr->ClearMissionLocking(missionId, mission); } }; - auto handler = DelayedSingleton::GetInstance()->GetTaskHandler(); + auto handler = AbilityManagerService::GetPubInstance()->GetTaskHandler(); int prepareTerminateTimeout = AmsConfigurationParameter::GetInstance().GetAppStartTimeoutTime() * PREPARE_TERMINATE_TIMEOUT_MULTIPLE; if (handler) { @@ -4227,5 +4233,47 @@ void MissionListManager::SignRestartAppFlag(const std::string &bundleName) defaultSingleList_->SignRestartAppFlag(bundleName); } } + +class MissionListWrapImpl : public MissionListWrap { +public: + ~MissionListWrapImpl() = default; + + std::shared_ptr CreateMissionListManager(int32_t userId) override + { + return std::make_shared(userId); + } + + void RemoveUserDir(int32_t userId) override + { + DelayedSingleton::GetInstance()->RemoveUserDir(userId); + } + + void InitMissionInfoMgr(int32_t userId) override + { + DelayedSingleton::GetInstance()->Init(userId); + } + + void SetMissionAbilityState(int32_t missionId, AbilityState state) override + { + DelayedSingleton::GetInstance()->SetMissionAbilityState(missionId, state); + } + + int32_t GetInnerMissionInfoById(int32_t missionId, InnerMissionInfo &innerMissionInfo) override + { + return DelayedSingleton::GetInstance()->GetInnerMissionInfoById( + missionId, innerMissionInfo); + } +#ifdef SUPPORT_SCREEN + std::shared_ptr GetSnapshot(int32_t missionId) override + { + return DelayedSingleton::GetInstance()->GetSnapshot(missionId); + } +#endif +}; } // namespace AAFwk } // namespace OHOS + +extern "C" __attribute__((visibility("default"))) OHOS::AAFwk::MissionListWrap* CreateMissionListWrap() +{ + return new OHOS::AAFwk::MissionListWrapImpl(); +} \ No newline at end of file diff --git a/services/abilitymgr/src/sub_managers_helper.cpp b/services/abilitymgr/src/sub_managers_helper.cpp index 59fe7f1dc7..09fac18cd8 100644 --- a/services/abilitymgr/src/sub_managers_helper.cpp +++ b/services/abilitymgr/src/sub_managers_helper.cpp @@ -15,6 +15,8 @@ #include "sub_managers_helper.h" +#include + #include "hilog_tag_wrapper.h" #include "hitrace_meter.h" #include "mission_info_mgr.h" @@ -30,6 +32,15 @@ SubManagersHelper::SubManagersHelper( std::shared_ptr taskHandler, std::shared_ptr eventHandler) : taskHandler_(taskHandler), eventHandler_(eventHandler) {} +SubManagersHelper::~SubManagersHelper() +{ + if (missionLibHandle_ != nullptr) { + missionListWrap_ = nullptr; + dlclose(missionLibHandle_); + missionLibHandle_ = nullptr; + } +} + void SubManagersHelper::InitSubManagers(int userId, bool switchUser) { InitConnectManager(userId, switchUser); @@ -103,12 +114,19 @@ void SubManagersHelper::InitMissionListManager(int userId, bool switchUser) auto it = missionListManagers_.find(userId); if (it != missionListManagers_.end()) { if (switchUser) { - DelayedSingleton::GetInstance()->Init(userId); + auto missionListWrap = GetMissionListWrap(); + if (missionListWrap) { + missionListWrap->InitMissionInfoMgr(userId); + } currentMissionListManager_ = it->second; } return; } - auto manager = std::make_shared(userId); + auto manager = CreateMissionListMgr(userId); + if (manager == nullptr) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "failed to create mission list manager"); + return; + } manager->Init(); missionListManagers_.emplace(userId, manager); if (switchUser) { @@ -249,19 +267,19 @@ std::shared_ptr SubManagersHelper::GetPendingWantManagerByUs return nullptr; } -std::unordered_map> SubManagersHelper::GetMissionListManagers() +std::unordered_map> SubManagersHelper::GetMissionListManagers() { std::lock_guard lock(managersMutex_); return missionListManagers_; } -std::shared_ptr SubManagersHelper::GetCurrentMissionListManager() +std::shared_ptr SubManagersHelper::GetCurrentMissionListManager() { std::lock_guard lock(managersMutex_); return currentMissionListManager_; } -std::shared_ptr SubManagersHelper::GetMissionListManagerByUserId(int32_t userId) +std::shared_ptr SubManagersHelper::GetMissionListManagerByUserId(int32_t userId) { std::lock_guard lock(managersMutex_); auto it = missionListManagers_.find(userId); @@ -272,7 +290,7 @@ std::shared_ptr SubManagersHelper::GetMissionListManagerByUs return nullptr; } -std::shared_ptr SubManagersHelper::GetMissionListManagerByUid(int32_t uid) +std::shared_ptr SubManagersHelper::GetMissionListManagerByUid(int32_t uid) { int32_t userId = INVALID_USER_ID; if (DelayedSingleton::GetInstance()->GetOsAccountLocalIdFromUid( @@ -431,5 +449,47 @@ bool SubManagersHelper::VerificationAllToken(const sptr &token) TAG_LOGE(AAFwkTag::ABILITYMGR, "Failed to verify all token."); return false; } + +std::shared_ptr SubManagersHelper::GetMissionListWrap() +{ + if (Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { + return nullptr; + } + + std::lock_guard lock(missionListWrapMutex_); + if (missionListWrap_) { + return missionListWrap_; + } + + if (missionLibHandle_ == nullptr) { + missionLibHandle_ = dlopen("libmission_list.z.so", RTLD_NOW | RTLD_GLOBAL); + if (missionLibHandle_ == nullptr) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "failed to open mission_list library"); + return nullptr; + } + } + + auto createMissionListWrapFunc = reinterpret_cast(dlsym(missionLibHandle_, + "CreateMissionListWrap")); + if (createMissionListWrapFunc == nullptr) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "failed to get create func"); + dlclose(missionLibHandle_); + missionLibHandle_ = nullptr; + return nullptr; + } + + missionListWrap_ = std::shared_ptr(createMissionListWrapFunc()); + return missionListWrap_; +} + +std::shared_ptr SubManagersHelper::CreateMissionListMgr(int32_t userId) +{ + auto missionListWrap = GetMissionListWrap(); + if (missionListWrap != nullptr) { + return missionListWrap->CreateMissionListManager(userId); + } + + return nullptr; +} } // namespace AAFwk } // namespace OHOS \ No newline at end of file diff --git a/services/abilitymgr/src/user_controller.cpp b/services/abilitymgr/src/user_controller.cpp index 156c0a6a5f..7c4f6a7131 100644 --- a/services/abilitymgr/src/user_controller.cpp +++ b/services/abilitymgr/src/user_controller.cpp @@ -175,20 +175,21 @@ int32_t UserController::StopUser(int32_t userId) } appScheduler->KillProcessesByUserId(userId); - if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto taskDataPersistenceMgr = DelayedSingleton::GetInstance(); - if (!taskDataPersistenceMgr) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "taskDataPersistenceMgr is null"); - return -1; - } - taskDataPersistenceMgr->RemoveUserDir(userId); - } - auto abilityManagerService = DelayedSingleton::GetInstance(); if (!abilityManagerService) { TAG_LOGE(AAFwkTag::ABILITYMGR, "abilityManagerService is null"); return -1; } + + if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { + auto missionListWrap = abilityManagerService->GetMissionListWrap(); + if (!missionListWrap) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "missionListWrap is null"); + return -1; + } + missionListWrap->RemoveUserDir(userId); + } + abilityManagerService->ClearUserData(userId); BroadcastUserStopped(userId); diff --git a/test/fuzztest/missioninfomgra_fuzzer/BUILD.gn b/test/fuzztest/missioninfomgra_fuzzer/BUILD.gn index f6bea7e122..c44da7004f 100644 --- a/test/fuzztest/missioninfomgra_fuzzer/BUILD.gn +++ b/test/fuzztest/missioninfomgra_fuzzer/BUILD.gn @@ -48,6 +48,7 @@ ohos_fuzztest("MissionInfoMgrAFuzzTest") { "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "//third_party/jsoncpp:jsoncpp", ] diff --git a/test/fuzztest/missioninfomgrb_fuzzer/BUILD.gn b/test/fuzztest/missioninfomgrb_fuzzer/BUILD.gn index 627ba42c2e..5075c3d6a9 100644 --- a/test/fuzztest/missioninfomgrb_fuzzer/BUILD.gn +++ b/test/fuzztest/missioninfomgrb_fuzzer/BUILD.gn @@ -48,6 +48,7 @@ ohos_fuzztest("MissionInfoMgrBFuzzTest") { "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "//third_party/jsoncpp:jsoncpp", ] diff --git a/test/fuzztest/missioninfomgrc_fuzzer/BUILD.gn b/test/fuzztest/missioninfomgrc_fuzzer/BUILD.gn index 376550c552..dc4c2c43bd 100644 --- a/test/fuzztest/missioninfomgrc_fuzzer/BUILD.gn +++ b/test/fuzztest/missioninfomgrc_fuzzer/BUILD.gn @@ -48,6 +48,7 @@ ohos_fuzztest("MissionInfoMgrCFuzzTest") { "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "//third_party/jsoncpp:jsoncpp", ] diff --git a/test/fuzztest/missionlistmanagerfourth_fuzzer/BUILD.gn b/test/fuzztest/missionlistmanagerfourth_fuzzer/BUILD.gn index c66e053b01..cdcc24426b 100644 --- a/test/fuzztest/missionlistmanagerfourth_fuzzer/BUILD.gn +++ b/test/fuzztest/missionlistmanagerfourth_fuzzer/BUILD.gn @@ -48,6 +48,7 @@ ohos_fuzztest("MissionListManagerFourthFuzzTest") { "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "//third_party/jsoncpp:jsoncpp", ] diff --git a/test/fuzztest/missionlistmanagersecond_fuzzer/BUILD.gn b/test/fuzztest/missionlistmanagersecond_fuzzer/BUILD.gn index ef2b9788b4..b3e2c524a0 100644 --- a/test/fuzztest/missionlistmanagersecond_fuzzer/BUILD.gn +++ b/test/fuzztest/missionlistmanagersecond_fuzzer/BUILD.gn @@ -49,6 +49,7 @@ ohos_fuzztest("MissionListManagerSecondFuzzTest") { "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "//third_party/jsoncpp:jsoncpp", ] diff --git a/test/fuzztest/missionlistmanagerthird_fuzzer/BUILD.gn b/test/fuzztest/missionlistmanagerthird_fuzzer/BUILD.gn index 11d90f1196..5f6341059b 100644 --- a/test/fuzztest/missionlistmanagerthird_fuzzer/BUILD.gn +++ b/test/fuzztest/missionlistmanagerthird_fuzzer/BUILD.gn @@ -48,6 +48,7 @@ ohos_fuzztest("MissionListManagerThirdFuzzTest") { "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "//third_party/jsoncpp:jsoncpp", ] diff --git a/test/fuzztest/pendingwantmanager_fuzzer/BUILD.gn b/test/fuzztest/pendingwantmanager_fuzzer/BUILD.gn index 6f7fdd1989..7dd0b053e6 100644 --- a/test/fuzztest/pendingwantmanager_fuzzer/BUILD.gn +++ b/test/fuzztest/pendingwantmanager_fuzzer/BUILD.gn @@ -49,6 +49,7 @@ ohos_fuzztest("PendingWantManagerFuzzTest") { "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "//third_party/jsoncpp:jsoncpp", ] diff --git a/test/moduletest/ability_manager_service_dump_test/BUILD.gn b/test/moduletest/ability_manager_service_dump_test/BUILD.gn index 8680b9c2c0..f9e31f9cf9 100644 --- a/test/moduletest/ability_manager_service_dump_test/BUILD.gn +++ b/test/moduletest/ability_manager_service_dump_test/BUILD.gn @@ -29,6 +29,7 @@ ohos_moduletest("ability_manager_service_dump_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", ] diff --git a/test/moduletest/ability_manager_service_dump_test/ability_manager_service_dump_test.cpp b/test/moduletest/ability_manager_service_dump_test/ability_manager_service_dump_test.cpp index 0a40f909e4..9b0f561042 100644 --- a/test/moduletest/ability_manager_service_dump_test/ability_manager_service_dump_test.cpp +++ b/test/moduletest/ability_manager_service_dump_test/ability_manager_service_dump_test.cpp @@ -17,6 +17,7 @@ #define private public #define protected public #include "ability_manager_service.h" +#include "mission_list_manager.h" #undef private #undef protected #include "scene_board_judgement.h" @@ -212,9 +213,10 @@ HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_OnAppStateChanged_ EXPECT_NE(abilityRecord, nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - abilityMs_->subManagersHelper_->currentMissionListManager_ = std::make_shared(USER_ID); - EXPECT_NE(abilityMs_->subManagersHelper_->currentMissionListManager_, nullptr); - abilityMs_->subManagersHelper_->currentMissionListManager_->terminateAbilityList_.push_back(abilityRecord); + auto missionListManager = std::make_shared(USER_ID); + missionListManager->Init(); + abilityMs_->subManagersHelper_->currentMissionListManager_ = missionListManager; + missionListManager->terminateAbilityList_.push_back(abilityRecord); abilityMs_->subManagersHelper_->currentDataAbilityManager_ = std::make_shared(); EXPECT_NE(abilityMs_->subManagersHelper_->currentDataAbilityManager_, nullptr); @@ -224,7 +226,7 @@ HWTEST_F(AbilityManagerServiceDumpTest, AbilityManagerService_OnAppStateChanged_ info.state = AppState::TERMINATED; abilityMs_->OnAppStateChanged(info); - abilityRecord = abilityMs_->subManagersHelper_->currentMissionListManager_->terminateAbilityList_.front(); + abilityRecord = missionListManager->terminateAbilityList_.front(); EXPECT_NE(abilityRecord, nullptr); EXPECT_EQ(abilityRecord->GetAppState(), AppState::TERMINATED); } diff --git a/test/moduletest/ability_timeout_module_test/BUILD.gn b/test/moduletest/ability_timeout_module_test/BUILD.gn index 0814506457..f55fbafe3a 100644 --- a/test/moduletest/ability_timeout_module_test/BUILD.gn +++ b/test/moduletest/ability_timeout_module_test/BUILD.gn @@ -63,6 +63,7 @@ ohos_moduletest("ability_timeout_module_test") { "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_path}/utils/server/startup:startup_util", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:event_report", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_services_path}/common:task_handler_wrap", diff --git a/test/moduletest/ability_timeout_module_test/ability_timeout_module_test.cpp b/test/moduletest/ability_timeout_module_test/ability_timeout_module_test.cpp index 0b3f76cd4f..2f8f51e310 100644 --- a/test/moduletest/ability_timeout_module_test/ability_timeout_module_test.cpp +++ b/test/moduletest/ability_timeout_module_test/ability_timeout_module_test.cpp @@ -18,6 +18,7 @@ #define protected public #include "ability_manager_service.h" #include "ability_event_handler.h" +#include "mission_list_manager.h" #undef private #undef protected @@ -121,13 +122,7 @@ void AbilityTimeoutModuleTest::SetUp() void AbilityTimeoutModuleTest::TearDown() { WaitUntilTaskFinishedByTimer(); - abilityMs_->subManagersHelper_->currentMissionListManager_->terminateAbilityList_.clear(); - abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_->missions_.clear(); - abilityMs_->subManagersHelper_->currentMissionListManager_->defaultStandardList_->missions_.clear(); - abilityMs_->subManagersHelper_->currentMissionListManager_->defaultSingleList_->missions_.clear(); - abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_.clear(); - abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_ - .push_front(abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_); + abilityMs_->subManagersHelper_->currentMissionListManager_.reset(); } void AbilityTimeoutModuleTest::MockOnStart() @@ -185,11 +180,13 @@ void AbilityTimeoutModuleTest::MockOnStop() std::shared_ptr AbilityTimeoutModuleTest::CreateRootLauncher() { - if (!abilityMs_->subManagersHelper_->currentMissionListManager_ || - !abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_) { + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + if (!curListManager || + !curListManager->launcherList_) { return nullptr; } - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto lauList = curListManager->launcherList_; AbilityRequest abilityRequest; abilityRequest.abilityInfo.type = AbilityType::PAGE; abilityRequest.abilityInfo.name = AbilityConfig::LAUNCHER_ABILITY_NAME; @@ -208,11 +205,13 @@ std::shared_ptr AbilityTimeoutModuleTest::CreateRootLauncher() std::shared_ptr AbilityTimeoutModuleTest::CreateLauncherAbility() { - if (!abilityMs_->subManagersHelper_->currentMissionListManager_ || - !abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_) { + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + if (!curListManager || + !curListManager->launcherList_) { return nullptr; } - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto lauList = curListManager->launcherList_; AbilityRequest abilityRequest; abilityRequest.abilityInfo.type = AbilityType::PAGE; abilityRequest.abilityInfo.name = "com.ix.hiworld.SecAbility"; @@ -230,7 +229,8 @@ std::shared_ptr AbilityTimeoutModuleTest::CreateLauncherAbility() std::shared_ptr AbilityTimeoutModuleTest::CreateServiceAbility() { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); if (!curListManager) { return nullptr; } @@ -247,7 +247,8 @@ std::shared_ptr AbilityTimeoutModuleTest::CreateServiceAbility() std::shared_ptr AbilityTimeoutModuleTest::CreateExtensionAbility() { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); if (!curListManager) { return nullptr; } @@ -265,7 +266,8 @@ std::shared_ptr AbilityTimeoutModuleTest::CreateExtensionAbility( std::shared_ptr AbilityTimeoutModuleTest::CreateCommonAbility() { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); if (!curListManager) { return nullptr; } @@ -301,8 +303,10 @@ HWTEST_F(AbilityTimeoutModuleTest, OnAbilityDied_001, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); int maxRestart = -1; @@ -316,7 +320,7 @@ HWTEST_F(AbilityTimeoutModuleTest, OnAbilityDied_001, TestSize.Level1) EXPECT_TRUE(rootLauncher->IsLauncherRoot()); GTEST_LOG_(INFO) << "userId:" << abilityMs_->GetUserId(); - GTEST_LOG_(INFO) << "currentmanager userId" << abilityMs_->subManagersHelper_->currentMissionListManager_->userId_; + GTEST_LOG_(INFO) << "currentmanager userId" << curListManager->userId_; // died rootlauncher ability rootLauncher->SetAbilityState(AbilityState::FOREGROUND); @@ -341,8 +345,10 @@ HWTEST_F(AbilityTimeoutModuleTest, OnAbilityDied_002, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); int maxRestart = -1; @@ -359,14 +365,14 @@ HWTEST_F(AbilityTimeoutModuleTest, OnAbilityDied_002, TestSize.Level1) // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); topAbility->SetAbilityState(AbilityState::FOREGROUND); // died rootlauncher ability abilityMs_->OnAbilityDied(rootLauncher); WaitUntilTaskFinishedByTimer(); - topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_TRUE(topAbility != nullptr); EXPECT_EQ(topAbility, rootLauncher); EXPECT_TRUE(lauList->GetAbilityRecordByToken(rootLauncher->GetToken()) != nullptr); @@ -386,8 +392,10 @@ HWTEST_F(AbilityTimeoutModuleTest, OnAbilityDied_003, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); int maxRestart = -1; @@ -427,12 +435,12 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_001, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); - // add rootlauncher to abilityMs. auto ability = CreateRootLauncher(); auto rootLauncher = lauList->GetTopAbility(); @@ -457,9 +465,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_002, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -471,7 +480,7 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_002, TestSize.Level1) // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); // rootlauncher load timeout @@ -493,9 +502,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_003, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -507,14 +517,14 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_003, TestSize.Level1) // add common ability to abilityMs as caller auto callerAbility = CreateCommonAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, callerAbility); callerAbility->SetAbilityState(AbilityState::FOREGROUND); // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); commonAbility->AddCallerRecord(callerAbility->GetToken(), -1); - topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); // rootlauncher load timeout @@ -536,9 +546,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_004, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -550,14 +561,14 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_004, TestSize.Level1) // add launcher ability to abilityMs as caller auto callerAbility = CreateLauncherAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, callerAbility); callerAbility->SetAbilityState(AbilityState::FOREGROUND); // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); commonAbility->AddCallerRecord(callerAbility->GetToken(), -1); - topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); // rootlauncher load timeout @@ -579,9 +590,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_005, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -597,8 +609,8 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_005, TestSize.Level1) // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); commonAbility->AddCallerRecord(callerAbility->GetToken(), -1); - auto currentList = abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_; - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto currentList = curListManager->currentMissionLists_; + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); // rootlauncher load timeout @@ -620,9 +632,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_006, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -638,8 +651,8 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_006, TestSize.Level1) // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); commonAbility->AddCallerRecord(callerAbility->GetToken(), -1); - auto currentList = abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_; - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto currentList = curListManager->currentMissionLists_; + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); // rootlauncher load timeout @@ -661,9 +674,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_007, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -675,7 +689,7 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleLoadTimeOut_007, TestSize.Level1) // add common laucher ability to abilityMs auto commonLauncherAbility = CreateLauncherAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonLauncherAbility); // rootlauncher load timeout @@ -697,9 +711,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_001, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); @@ -728,9 +743,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_002, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -742,7 +758,7 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_002, TestSize.Level1) // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); commonAbility->SetAbilityState(AbilityState::FOREGROUNDING); @@ -765,9 +781,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_003, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -779,14 +796,14 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_003, TestSize.Level1) // add common ability to abilityMs as caller auto callerAbility = CreateCommonAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager>GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, callerAbility); callerAbility->SetAbilityState(AbilityState::FOREGROUND); // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); commonAbility->AddCallerRecord(callerAbility->GetToken(), -1); - topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); commonAbility->SetAbilityState(AbilityState::FOREGROUNDING); @@ -809,9 +826,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_004, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -823,14 +841,14 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_004, TestSize.Level1) // add launcher ability to abilityMs as caller auto callerAbility = CreateLauncherAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, callerAbility); callerAbility->SetAbilityState(AbilityState::FOREGROUND); // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); commonAbility->AddCallerRecord(callerAbility->GetToken(), -1); - topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); commonAbility->SetAbilityState(AbilityState::FOREGROUNDING); @@ -853,9 +871,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_005, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -871,8 +890,8 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_005, TestSize.Level1) // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); commonAbility->AddCallerRecord(callerAbility->GetToken(), -1); - auto currentList = abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_; - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto currentList = curListManager->currentMissionLists_; + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); commonAbility->SetAbilityState(AbilityState::FOREGROUNDING); @@ -895,9 +914,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_006, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -913,8 +933,8 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_006, TestSize.Level1) // add common ability to abilityMs auto commonAbility = CreateCommonAbility(); commonAbility->AddCallerRecord(callerAbility->GetToken(), -1); - auto currentList = abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_; - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto currentList = curListManager->currentMissionLists_; + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonAbility); commonAbility->SetAbilityState(AbilityState::FOREGROUNDING); @@ -937,9 +957,10 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_007, TestSize.Level1) { // test config is success. EXPECT_TRUE(abilityMs_ != nullptr); - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); // add rootlauncher to abilityMs. @@ -951,7 +972,7 @@ HWTEST_F(AbilityTimeoutModuleTest, HandleForegroundTimeOut_007, TestSize.Level1) // add common laucher ability to abilityMs auto commonLauncherAbility = CreateLauncherAbility(); - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = curListManager->GetCurrentTopAbilityLocked(); EXPECT_EQ(topAbility, commonLauncherAbility); commonLauncherAbility->SetAbilityState(AbilityState::FOREGROUNDING); diff --git a/test/moduletest/common/ams/specified_ability_service_test/BUILD.gn b/test/moduletest/common/ams/specified_ability_service_test/BUILD.gn index a68be396a5..22592243ae 100644 --- a/test/moduletest/common/ams/specified_ability_service_test/BUILD.gn +++ b/test/moduletest/common/ams/specified_ability_service_test/BUILD.gn @@ -29,6 +29,7 @@ ohos_moduletest("specified_ability_service_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "//third_party/googletest:gmock_main", "//third_party/googletest:gtest_main", diff --git a/test/moduletest/common/ams/specified_ability_service_test/specified_ability_service_test.cpp b/test/moduletest/common/ams/specified_ability_service_test/specified_ability_service_test.cpp index 156caf1fbc..761686d2a0 100644 --- a/test/moduletest/common/ams/specified_ability_service_test/specified_ability_service_test.cpp +++ b/test/moduletest/common/ams/specified_ability_service_test/specified_ability_service_test.cpp @@ -25,6 +25,7 @@ #define protected public #include "ability_manager_errors.h" #include "ability_manager_service.h" +#include "mission_list_manager.h" #undef private #undef protected @@ -112,8 +113,9 @@ HWTEST_F(SpecifiedAbilityServiceTest, OnAcceptWantResponse_001, TestSize.Level1) abilityMgrServ_->subManagersHelper_->InitMissionListManager(11, true); Want want; want.SetElementName("DemoDeviceId", "DemoBundleName", "DemoAbilityName"); - EXPECT_TRUE(abilityMgrServ_->subManagersHelper_->currentMissionListManager_); - abilityMgrServ_->subManagersHelper_->currentMissionListManager_->EnqueueWaitingAbility(abilityRequest); + auto missionListMgr = abilityMgrServ_->subManagersHelper_->currentMissionListManager_; + EXPECT_TRUE(missionListMgr); + reinterpret_cast(missionListMgr.get())->EnqueueWaitingAbility(abilityRequest); abilityMgrServ_->OnAcceptWantResponse(want, "flag"); EXPECT_EQ(false, abilityRecord->IsNewWant()); diff --git a/test/moduletest/mission_dump_test/BUILD.gn b/test/moduletest/mission_dump_test/BUILD.gn index acfb762509..ea13cf3bc7 100644 --- a/test/moduletest/mission_dump_test/BUILD.gn +++ b/test/moduletest/mission_dump_test/BUILD.gn @@ -42,6 +42,7 @@ ohos_moduletest("mission_dump_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core:appexecfwk_appmgr_mock", diff --git a/test/moduletest/mission_dump_test/mission_dump_test.cpp b/test/moduletest/mission_dump_test/mission_dump_test.cpp index 06e0a75a2c..09304c6ed9 100644 --- a/test/moduletest/mission_dump_test/mission_dump_test.cpp +++ b/test/moduletest/mission_dump_test/mission_dump_test.cpp @@ -19,6 +19,7 @@ #include "ability_manager_service.h" #include "ability_event_handler.h" #include "ams_configuration_parameter.h" +#include "mission_list_manager.h" #undef private #undef protected @@ -32,6 +33,7 @@ #include "mock_ability_token.h" #include "if_system_ability_manager.h" #include "iservice_registry.h" + using namespace testing; using namespace testing::ext; using namespace OHOS::AppExecFwk; diff --git a/test/moduletest/on_new_want_module_test/BUILD.gn b/test/moduletest/on_new_want_module_test/BUILD.gn index 55d279ecc0..c01591d847 100644 --- a/test/moduletest/on_new_want_module_test/BUILD.gn +++ b/test/moduletest/on_new_want_module_test/BUILD.gn @@ -29,6 +29,7 @@ ohos_moduletest("on_new_want_module_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "//third_party/googletest:gmock_main", "//third_party/googletest:gtest_main", diff --git a/test/moduletest/running_infos_module_test/BUILD.gn b/test/moduletest/running_infos_module_test/BUILD.gn index 0073360035..561fe9deca 100644 --- a/test/moduletest/running_infos_module_test/BUILD.gn +++ b/test/moduletest/running_infos_module_test/BUILD.gn @@ -65,6 +65,7 @@ ohos_moduletest("running_infos_module_test") { "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_path}/utils/server/startup:startup_util", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:event_report", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_services_path}/common:task_handler_wrap", diff --git a/test/moduletest/running_infos_module_test/running_infos_module_test.cpp b/test/moduletest/running_infos_module_test/running_infos_module_test.cpp index d592a23433..82cb2a1de8 100644 --- a/test/moduletest/running_infos_module_test/running_infos_module_test.cpp +++ b/test/moduletest/running_infos_module_test/running_infos_module_test.cpp @@ -43,6 +43,7 @@ #include "wants_info.h" #include "want_receiver_stub.h" #include "want_sender_stub.h" +#include "mission_list_manager.h" using namespace std::placeholders; using namespace testing::ext; @@ -130,7 +131,8 @@ void RunningInfosModuleTest::OnStartAms() abilityMgrServ_->subManagersHelper_ = std::make_shared(nullptr, nullptr); abilityMgrServ_->subManagersHelper_->InitSubManagers(userId, true); abilityMgrServ_->subManagersHelper_->currentConnectManager_->SetTaskHandler(abilityMgrServ_->taskHandler_); - auto topAbility = abilityMgrServ_->GetMissionListManagerByUserId(userId)->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMgrServ_-> + GetMissionListManagerByUserId(userId).get())->GetCurrentTopAbilityLocked(); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -281,7 +283,8 @@ HWTEST_F(RunningInfosModuleTest, GetAbilityRunningInfos_004, TestSize.Level1) auto result = abilityMgrServ_->StartAbility(want); EXPECT_EQ(OHOS::ERR_OK, result); - auto topAbility = abilityMgrServ_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMgrServ_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(topAbility); topAbility->SetAbilityState(AbilityState::FOREGROUND); @@ -357,7 +360,8 @@ HWTEST_F(RunningInfosModuleTest, GetAbilityRunningInfos_006, TestSize.Level1) auto result = abilityMgrServ_->StartAbility(want); EXPECT_EQ(OHOS::ERR_OK, result); - auto topAbility = abilityMgrServ_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMgrServ_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(topAbility); topAbility->SetAbilityState(AbilityState::FOREGROUND); diff --git a/test/moduletest/start_ability_implicit_module_test/BUILD.gn b/test/moduletest/start_ability_implicit_module_test/BUILD.gn index 2958acbbd9..17b5c42833 100644 --- a/test/moduletest/start_ability_implicit_module_test/BUILD.gn +++ b/test/moduletest/start_ability_implicit_module_test/BUILD.gn @@ -53,6 +53,7 @@ ohos_moduletest("start_ability_implicit_module_test") { "${ability_runtime_innerkits_path}/uri_permission:uri_permission_mgr", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_services_path}/common:task_handler_wrap", "${distributedschedule_path}/safwk/interfaces/innerkits/safwk:system_ability_fwk", diff --git a/test/moduletest/start_ability_implicit_module_test/start_ability_implicit_module_test.cpp b/test/moduletest/start_ability_implicit_module_test/start_ability_implicit_module_test.cpp index 222165305d..4b554b108b 100644 --- a/test/moduletest/start_ability_implicit_module_test/start_ability_implicit_module_test.cpp +++ b/test/moduletest/start_ability_implicit_module_test/start_ability_implicit_module_test.cpp @@ -29,6 +29,7 @@ #include "sa_mgr_client.h" #include "system_ability_definition.h" #include "ui_service_mgr_client_mock.h" +#include "mission_list_manager.h" using namespace testing; using namespace testing::ext; @@ -113,10 +114,7 @@ void StartAbilityImplicitModuleTest::OnStartAms() const void StartAbilityImplicitModuleTest::OnStopAms() const { - abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_->missions_.clear(); - abilityMs_->subManagersHelper_->currentMissionListManager_->defaultStandardList_->missions_.clear(); - abilityMs_->subManagersHelper_->currentMissionListManager_->defaultSingleList_->missions_.clear(); - abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_.clear(); + abilityMs_->subManagersHelper_->currentMissionListManager_.reset(); abilityMs_->OnStop(); } @@ -161,7 +159,8 @@ HWTEST_F(StartAbilityImplicitModuleTest, StartAbility_001, TestSize.Level1) EXPECT_TRUE(!params.empty()); EXPECT_TRUE(isCallBack); - auto abilityRecord = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto abilityRecord = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(abilityRecord != nullptr); GTEST_LOG_(INFO) << "ability:" << abilityRecord->GetAbilityInfo().name; @@ -193,7 +192,8 @@ HWTEST_F(StartAbilityImplicitModuleTest, StartAbility_002, TestSize.Level1) EXPECT_TRUE(!params.empty()); EXPECT_TRUE(isCallBack); - auto abilityRecord = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto abilityRecord = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(abilityRecord == nullptr); } @@ -222,7 +222,8 @@ HWTEST_F(StartAbilityImplicitModuleTest, StartAbility_003, TestSize.Level1) EXPECT_TRUE(params.empty()); EXPECT_TRUE(!isCallBack); - auto abilityRecord = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto abilityRecord = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(abilityRecord != nullptr); } @@ -251,7 +252,8 @@ HWTEST_F(StartAbilityImplicitModuleTest, StartAbility_004, TestSize.Level1) EXPECT_TRUE(!params.empty()); EXPECT_TRUE(isCallBack); - auto abilityRecord = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto abilityRecord = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(abilityRecord == nullptr); } diff --git a/test/moduletest/start_option_display_id_test/BUILD.gn b/test/moduletest/start_option_display_id_test/BUILD.gn index 8200567b7d..538bd97719 100644 --- a/test/moduletest/start_option_display_id_test/BUILD.gn +++ b/test/moduletest/start_option_display_id_test/BUILD.gn @@ -29,6 +29,7 @@ ohos_moduletest("start_option_module_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", ] diff --git a/test/moduletest/start_option_display_id_test/start_option_display_id_test.cpp b/test/moduletest/start_option_display_id_test/start_option_display_id_test.cpp index a05d584e9c..8c6ad62a94 100644 --- a/test/moduletest/start_option_display_id_test/start_option_display_id_test.cpp +++ b/test/moduletest/start_option_display_id_test/start_option_display_id_test.cpp @@ -17,6 +17,7 @@ #define private public #define protected public #include "ability_manager_service.h" +#include "mission_list_manager.h" #undef private #undef protected #include "ability_manager_errors.h" @@ -64,7 +65,8 @@ HWTEST_F(StartOptionDisplayIdTest, start_option_001, TestSize.Level1) option.SetDisplayID(DISPLAY_ID); auto result = abilityMgrServ_->StartAbility(want, option, nullptr, USER_ID_U100, 0); if (result == OHOS::ERR_OK) { - auto topAbility = abilityMgrServ_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMgrServ_-> + GetMissionListManagerByUserId(USER_ID_U100).get())->GetCurrentTopAbilityLocked(); if (topAbility) { auto defualtDisplayId = 0; auto displayId = topAbility->GetWant().GetIntParam(Want::PARAM_RESV_DISPLAY_ID, defualtDisplayId); diff --git a/test/unittest/ability_manager_service_account_test/ability_manager_service_account_test.cpp b/test/unittest/ability_manager_service_account_test/ability_manager_service_account_test.cpp index c9bd177786..f3d391cbae 100644 --- a/test/unittest/ability_manager_service_account_test/ability_manager_service_account_test.cpp +++ b/test/unittest/ability_manager_service_account_test/ability_manager_service_account_test.cpp @@ -20,6 +20,7 @@ #include "ability_event_handler.h" #include "ability_connect_manager.h" #include "ams_configuration_parameter.h" +#include "mission_list_manager.h" #undef private #undef protected @@ -57,6 +58,16 @@ static void WaitUntilTaskFinished() } } } + +static std::shared_ptr GetMissionListTopAbility( + std::shared_ptr missionListMgr) +{ + if (!missionListMgr) { + return nullptr; + } + return reinterpret_cast(missionListMgr.get()).GetCurrentTopAbilityLocked(); +} + namespace { const int32_t USER_ID_U100 = 100; const int32_t ERROR_USER_ID_U256 = 256; @@ -112,7 +123,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_001, TestSize.Le { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_StartAbility_001 start"; abilityMs_->StartUser(USER_ID_U100, nullptr); - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -124,7 +135,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_001, TestSize.Le EXPECT_EQ(OHOS::ERR_OK, result); abilityMs_->StartUser(newUserId, nullptr); - topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -147,7 +158,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_001, TestSize.Le HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_002, TestSize.Level1) { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_StartAbility_002 start"; - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -158,7 +169,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_002, TestSize.Le WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); sptr token = nullptr; if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); @@ -186,7 +197,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_003, TestSize.Le GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_StartAbility_003 start"; AbilityStartSetting abilityStartSetting; // default user - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -198,7 +209,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_003, TestSize.Le EXPECT_EQ(OHOS::ERR_OK, result); abilityMs_->StartUser(newUserId, nullptr); - topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -222,7 +233,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_004, TestSize.Le GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_StartAbility_004 start"; StartOptions abilityStartOptions; // default user - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -234,7 +245,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_004, TestSize.Le EXPECT_EQ(OHOS::ERR_OK, result); abilityMs_->StartUser(newUserId, nullptr); - topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -386,7 +397,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_011, TestSize.Le { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_StartAbility_011 start"; abilityMs_->StartUser(USER_ID_U100, nullptr); - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -410,7 +421,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_StartAbility_011, TestSize.Le HWTEST_F(AbilityManagerServiceAccountTest, Account_TerminateAbility_001, TestSize.Level1) { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_TerminateAbility_001 start"; - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -421,7 +432,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_TerminateAbility_001, TestSiz WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); sptr token = nullptr; if (topAbility) { @@ -761,7 +772,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleConnectAbilityDone_00 HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleConnectAbilityDone_002, TestSize.Level1) { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_ScheduleConnectAbilityDone_002 start"; - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -772,7 +783,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleConnectAbilityDone_00 WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); sptr token = nullptr; if (topAbility) { @@ -843,7 +854,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleConnectAbilityDone_00 { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_ScheduleConnectAbilityDone_004 start"; abilityMs_->StartUser(newUserId, nullptr); - auto topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -854,7 +865,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleConnectAbilityDone_00 WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); sptr token = nullptr; if (topAbility) { @@ -923,7 +934,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleDisconnectAbilityDone HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleDisconnectAbilityDone_002, TestSize.Level1) { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_ScheduleDisconnectAbilityDone_002 start"; - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -934,7 +945,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleDisconnectAbilityDone WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); sptr token = nullptr; if (topAbility) { @@ -961,7 +972,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleDisconnectAbilityDone { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_ScheduleDisconnectAbilityDone_003 start"; abilityMs_->StartUser(newUserId, nullptr); - auto topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -972,7 +983,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleDisconnectAbilityDone WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); sptr token = nullptr; if (topAbility) { @@ -1041,7 +1052,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleCommandAbilityDone_00 HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleCommandAbilityDone_002, TestSize.Level1) { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_ScheduleCommandAbilityDone_002 start"; - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -1052,7 +1063,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleCommandAbilityDone_00 WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); sptr token = nullptr; if (topAbility) { @@ -1123,7 +1134,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleCommandAbilityDone_00 { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_ScheduleCommandAbilityDone_004 start"; abilityMs_->StartUser(newUserId, nullptr); - auto topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -1134,7 +1145,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_ScheduleCommandAbilityDone_00 WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(newUserId)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(newUserId)); sptr token = nullptr; if (topAbility) { @@ -1306,7 +1317,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_MinimizeAbility_001, TestSize { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_MinimizeAbility_001 start"; // default user - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -1317,7 +1328,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_MinimizeAbility_001, TestSize WaitUntilTaskFinished(); EXPECT_EQ(ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); sptr token = nullptr; if (topAbility) { @@ -1340,7 +1351,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_AttachAbilityThread_001, Test { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_AttachAbilityThread_001 start"; // default user - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -1351,7 +1362,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_AttachAbilityThread_001, Test WaitUntilTaskFinished(); EXPECT_EQ(OHOS::ERR_OK, result); OHOS::sptr scheduler = new AbilityScheduler(); - topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); sptr token = nullptr; if (topAbility) { token = topAbility->GetToken(); @@ -1372,7 +1383,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_OnAbilityRequestDone_001, Tes { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_OnAbilityRequestDone_001 start"; // default user - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } @@ -1382,7 +1393,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_OnAbilityRequestDone_001, Tes auto result = abilityMs_->StartAbility(want, USER_ID_U100, -1); WaitUntilTaskFinished(); EXPECT_EQ(ERR_OK, result); - topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); sptr token = nullptr; if (topAbility) { token = topAbility->GetToken(); @@ -1403,7 +1414,7 @@ HWTEST_F(AbilityManagerServiceAccountTest, Account_KillProcess_001, TestSize.Lev { GTEST_LOG_(INFO) << "AbilityManagerServiceAccountTest Account_KillProcess_001 start"; // default user - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = GetMissionListTopAbility(abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)); if (topAbility) { topAbility->SetAbilityState(AAFwk::AbilityState::FOREGROUND); } diff --git a/test/unittest/ability_record_test/BUILD.gn b/test/unittest/ability_record_test/BUILD.gn index 0a4d80bca1..63b8f88fe2 100644 --- a/test/unittest/ability_record_test/BUILD.gn +++ b/test/unittest/ability_record_test/BUILD.gn @@ -59,6 +59,7 @@ ohos_unittest("ability_record_test") { "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_native_path}/ability/native:auto_startup_callback", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_services_path}/uripermmgr:libupms_static", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", diff --git a/test/unittest/ability_timeout_test/BUILD.gn b/test/unittest/ability_timeout_test/BUILD.gn index 2608734d77..4ac261d97a 100644 --- a/test/unittest/ability_timeout_test/BUILD.gn +++ b/test/unittest/ability_timeout_test/BUILD.gn @@ -29,6 +29,7 @@ ohos_unittest("ability_timeout_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", ] diff --git a/test/unittest/ability_timeout_test/ability_timeout_test.cpp b/test/unittest/ability_timeout_test/ability_timeout_test.cpp index 8770065dfe..422315981f 100644 --- a/test/unittest/ability_timeout_test/ability_timeout_test.cpp +++ b/test/unittest/ability_timeout_test/ability_timeout_test.cpp @@ -17,6 +17,7 @@ #define private public #define protected public #include "ability_manager_service.h" +#include "mission_list_manager.h" #undef private #undef protected @@ -92,8 +93,10 @@ HWTEST_F(AbilityTimeoutTest, OnAbilityDied_001, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto defList = abilityMs_->subManagersHelper_->currentMissionListManager_->defaultStandardList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto defList = curListManager->defaultStandardList_; EXPECT_TRUE(defList != nullptr); AbilityRequest abilityRequest; @@ -129,10 +132,12 @@ HWTEST_F(AbilityTimeoutTest, OnAbilityDied_002, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); - EXPECT_EQ((int)(abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_.size()), 1); + EXPECT_EQ((int)(curListManager->currentMissionLists_.size()), 1); AbilityRequest abilityRequest; abilityRequest.abilityInfo.type = AbilityType::PAGE; @@ -171,10 +176,12 @@ HWTEST_F(AbilityTimeoutTest, HandleLoadTimeOut_001, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - EXPECT_TRUE(abilityMs_->subManagersHelper_->currentMissionListManager_ != nullptr); - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); + EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); - EXPECT_EQ((int)(abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_.size()), 1); + EXPECT_EQ((int)(curListManager->currentMissionLists_.size()), 1); // root launcher ability load timeout AbilityRequest abilityRequest; @@ -215,11 +222,12 @@ HWTEST_F(AbilityTimeoutTest, HandleLoadTimeOut_002, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); - EXPECT_EQ((int)(abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_.size()), 1); + EXPECT_EQ((int)(curListManager->currentMissionLists_.size()), 1); AbilityRequest abilityRequest; abilityRequest.abilityInfo.type = AbilityType::PAGE; @@ -274,11 +282,12 @@ HWTEST_F(AbilityTimeoutTest, HandleLoadTimeOut_003, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); - EXPECT_EQ((int)(abilityMs_->subManagersHelper_->currentMissionListManager_->currentMissionLists_.size()), 1); + EXPECT_EQ((int)(curListManager->currentMissionLists_.size()), 1); AbilityRequest abilityRequest; abilityRequest.abilityInfo.type = AbilityType::PAGE; abilityRequest.abilityInfo.name = "com.test.rootLauncher"; @@ -339,10 +348,10 @@ HWTEST_F(AbilityTimeoutTest, HandleLoadTimeOut_004, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; @@ -406,10 +415,10 @@ HWTEST_F(AbilityTimeoutTest, HandleLoadTimeOut_005, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; @@ -473,12 +482,11 @@ HWTEST_F(AbilityTimeoutTest, HandleLoadTimeOut_006, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); - AbilityRequest abilityRequest; abilityRequest.abilityInfo.type = AbilityType::PAGE; abilityRequest.abilityInfo.name = "com.test.rootLauncher"; @@ -538,10 +546,10 @@ HWTEST_F(AbilityTimeoutTest, HandleLoadTimeOut_007, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; @@ -605,10 +613,10 @@ HWTEST_F(AbilityTimeoutTest, HandleForgroundNewTimeout_001, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; @@ -650,10 +658,10 @@ HWTEST_F(AbilityTimeoutTest, HandleForgroundNewTimeout_002, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; @@ -707,9 +715,10 @@ HWTEST_F(AbilityTimeoutTest, HandleForgroundNewTimeout_003, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; abilityRequest.abilityInfo.type = AbilityType::PAGE; @@ -774,10 +783,10 @@ HWTEST_F(AbilityTimeoutTest, HandleForgroundNewTimeout_004, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; @@ -841,10 +850,10 @@ HWTEST_F(AbilityTimeoutTest, HandleForgroundNewTimeout_005, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; @@ -909,10 +918,10 @@ HWTEST_F(AbilityTimeoutTest, HandleForgroundNewTimeout_006, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; @@ -977,10 +986,10 @@ HWTEST_F(AbilityTimeoutTest, HandleForgroundNewTimeout_007, TestSize.Level1) abilityMs_->OnStart(); EXPECT_TRUE(abilityMs_ != nullptr); if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { - auto curListManager = abilityMs_->subManagersHelper_->currentMissionListManager_; - auto lauList = abilityMs_->subManagersHelper_->currentMissionListManager_->launcherList_; - + auto curListManager = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get()); EXPECT_TRUE(curListManager != nullptr); + auto lauList = curListManager->launcherList_; EXPECT_TRUE(lauList != nullptr); AbilityRequest abilityRequest; diff --git a/test/unittest/app_exit_reason_data_manager_test/BUILD.gn b/test/unittest/app_exit_reason_data_manager_test/BUILD.gn index 4d3d5e4a2d..1edb6f917c 100755 --- a/test/unittest/app_exit_reason_data_manager_test/BUILD.gn +++ b/test/unittest/app_exit_reason_data_manager_test/BUILD.gn @@ -35,6 +35,7 @@ ohos_unittest("app_exit_reason_data_manager_test") { deps = [ "${ability_runtime_innerkits_path}/ability_manager:ability_manager", + "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", ] diff --git a/test/unittest/call_container_test/BUILD.gn b/test/unittest/call_container_test/BUILD.gn index f41a49ffb8..e83238c0a0 100644 --- a/test/unittest/call_container_test/BUILD.gn +++ b/test/unittest/call_container_test/BUILD.gn @@ -45,6 +45,7 @@ ohos_unittest("call_container_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", "//third_party/googletest:gmock_main", diff --git a/test/unittest/call_container_test/call_container_test.cpp b/test/unittest/call_container_test/call_container_test.cpp index df0794abb3..e8c4f232a1 100644 --- a/test/unittest/call_container_test/call_container_test.cpp +++ b/test/unittest/call_container_test/call_container_test.cpp @@ -19,6 +19,7 @@ #include "call_container.h" #include "ability_record.h" #include "ability_manager_service.h" +#include "mission_list_manager.h" #undef private #undef protected #include "ability_scheduler_mock.h" diff --git a/test/unittest/mission_data_storage_test/BUILD.gn b/test/unittest/mission_data_storage_test/BUILD.gn index ed04925f22..4e3cb6a194 100755 --- a/test/unittest/mission_data_storage_test/BUILD.gn +++ b/test/unittest/mission_data_storage_test/BUILD.gn @@ -41,6 +41,7 @@ ohos_unittest("mission_data_storage_test") { "${ability_runtime_innerkits_path}/ability_manager:mission_info", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_services_path}/common:task_handler_wrap", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", diff --git a/test/unittest/mission_info_mgr_test/BUILD.gn b/test/unittest/mission_info_mgr_test/BUILD.gn index cef4142f08..058082a4a1 100755 --- a/test/unittest/mission_info_mgr_test/BUILD.gn +++ b/test/unittest/mission_info_mgr_test/BUILD.gn @@ -42,6 +42,7 @@ ohos_unittest("mission_info_mgr_test") { "${ability_runtime_innerkits_path}/ability_manager:mission_info", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core:appexecfwk_appmgr_mock", diff --git a/test/unittest/mission_list_dump_test/BUILD.gn b/test/unittest/mission_list_dump_test/BUILD.gn index 6dd615ff90..aa6decb2df 100644 --- a/test/unittest/mission_list_dump_test/BUILD.gn +++ b/test/unittest/mission_list_dump_test/BUILD.gn @@ -23,7 +23,10 @@ ohos_unittest("mission_list_dump_test") { configs = [ "${ability_runtime_services_path}/abilitymgr:abilityms_config" ] - deps = [ "${ability_runtime_services_path}/abilitymgr:abilityms" ] + deps = [ + "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", + ] external_deps = [ "ability_base:session_info", diff --git a/test/unittest/mission_list_manager_dump_test/BUILD.gn b/test/unittest/mission_list_manager_dump_test/BUILD.gn index 732b0537b4..b5519e87dd 100644 --- a/test/unittest/mission_list_manager_dump_test/BUILD.gn +++ b/test/unittest/mission_list_manager_dump_test/BUILD.gn @@ -25,6 +25,7 @@ ohos_unittest("mission_list_manager_dump_test") { deps = [ "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "//third_party/googletest:gtest_main", ] diff --git a/test/unittest/mission_list_manager_test/BUILD.gn b/test/unittest/mission_list_manager_test/BUILD.gn index 7a38e81a5b..c1a147b6d7 100644 --- a/test/unittest/mission_list_manager_test/BUILD.gn +++ b/test/unittest/mission_list_manager_test/BUILD.gn @@ -50,6 +50,7 @@ ohos_unittest("mission_list_manager_test") { "${ability_runtime_innerkits_path}/ability_manager:mission_info", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core:appexecfwk_appmgr_mock", diff --git a/test/unittest/mission_list_manager_ut_test/BUILD.gn b/test/unittest/mission_list_manager_ut_test/BUILD.gn index 56e79bce5b..fef373f8bc 100644 --- a/test/unittest/mission_list_manager_ut_test/BUILD.gn +++ b/test/unittest/mission_list_manager_ut_test/BUILD.gn @@ -45,6 +45,7 @@ ohos_unittest("mission_list_manager_ut_test") { "${ability_runtime_native_path}/ability/native:ability_thread", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core:appexecfwk_appmgr_mock", diff --git a/test/unittest/mission_list_test/BUILD.gn b/test/unittest/mission_list_test/BUILD.gn index 937d6618f3..dacb1e581e 100644 --- a/test/unittest/mission_list_test/BUILD.gn +++ b/test/unittest/mission_list_test/BUILD.gn @@ -40,6 +40,7 @@ ohos_unittest("mission_list_test") { deps = [ "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core:appexecfwk_appmgr_mock", @@ -86,6 +87,7 @@ ohos_unittest("mission_list_test_call") { deps = [ "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "//third_party/googletest:gtest_main", ] diff --git a/test/unittest/mission_test/BUILD.gn b/test/unittest/mission_test/BUILD.gn index 10f1ad977e..906486680b 100644 --- a/test/unittest/mission_test/BUILD.gn +++ b/test/unittest/mission_test/BUILD.gn @@ -40,6 +40,7 @@ ohos_unittest("mission_test") { deps = [ "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core:appexecfwk_appmgr_mock", diff --git a/test/unittest/running_infos_test/BUILD.gn b/test/unittest/running_infos_test/BUILD.gn index 3e7675edd8..0f3f3357a7 100644 --- a/test/unittest/running_infos_test/BUILD.gn +++ b/test/unittest/running_infos_test/BUILD.gn @@ -29,6 +29,7 @@ ohos_unittest("running_infos_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", ] diff --git a/test/unittest/running_infos_test/running_infos_test.cpp b/test/unittest/running_infos_test/running_infos_test.cpp index ce25a097e5..ea0b7e88dc 100644 --- a/test/unittest/running_infos_test/running_infos_test.cpp +++ b/test/unittest/running_infos_test/running_infos_test.cpp @@ -17,6 +17,7 @@ #define private public #define protected public #include "ability_manager_service.h" +#include "mission_list_manager.h" #undef private #undef protected #include "ability_manager_errors.h" @@ -148,7 +149,8 @@ HWTEST_F(RunningInfosTest, GetAbilityRunningInfos_004, TestSize.Level1) auto result = abilityMs_->StartAbility(want); if (result == OHOS::ERR_OK) { - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(topAbility); topAbility->SetAbilityState(AbilityState::FOREGROUND); } @@ -223,7 +225,8 @@ HWTEST_F(RunningInfosTest, GetAbilityRunningInfos_006, TestSize.Level1) auto result = abilityMs_->StartAbility(want); if (result == OHOS::ERR_OK) { - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(topAbility); topAbility->SetAbilityState(AbilityState::FOREGROUND); } @@ -262,7 +265,8 @@ HWTEST_F(RunningInfosTest, GetAbilityRunningInfos_007, TestSize.Level1) auto result = abilityMs_->StartAbility(want); if (result == OHOS::ERR_OK) { - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(topAbility); topAbility->SetAbilityState(AbilityState::ACTIVE); @@ -535,7 +539,8 @@ HWTEST_F(RunningInfosTest, MissionGetAbilityRunningInfos_002, TestSize.Level1) auto result = abilityMs_->StartAbility(want); if (result == OHOS::ERR_OK) { - auto topAbility = abilityMs_->subManagersHelper_->currentMissionListManager_->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMs_->subManagersHelper_-> + currentMissionListManager_.get())->GetCurrentTopAbilityLocked(); EXPECT_TRUE(topAbility); topAbility->SetAbilityState(AbilityState::FOREGROUND); } diff --git a/test/unittest/specified_mission_list_test/BUILD.gn b/test/unittest/specified_mission_list_test/BUILD.gn index 0bf26322ad..aeb350bef0 100644 --- a/test/unittest/specified_mission_list_test/BUILD.gn +++ b/test/unittest/specified_mission_list_test/BUILD.gn @@ -48,6 +48,7 @@ ohos_unittest("specified_mission_list_test") { "${ability_runtime_native_path}/ability/native:auto_startup_callback", "${ability_runtime_native_path}/appkit:appkit_manager_helper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:app_util", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", diff --git a/test/unittest/start_option_display_id_test/BUILD.gn b/test/unittest/start_option_display_id_test/BUILD.gn index 7d21032355..2600bb9a38 100644 --- a/test/unittest/start_option_display_id_test/BUILD.gn +++ b/test/unittest/start_option_display_id_test/BUILD.gn @@ -29,6 +29,7 @@ ohos_unittest("start_option_display_id_test") { "${ability_runtime_innerkits_path}/app_manager:app_manager", "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", ] diff --git a/test/unittest/start_option_display_id_test/start_option_display_id_test.cpp b/test/unittest/start_option_display_id_test/start_option_display_id_test.cpp index 5f779ba2e9..57afee36e4 100644 --- a/test/unittest/start_option_display_id_test/start_option_display_id_test.cpp +++ b/test/unittest/start_option_display_id_test/start_option_display_id_test.cpp @@ -17,6 +17,7 @@ #define private public #define protected public #include "ability_manager_service.h" +#include "mission_list_manager.h" #undef private #undef protected @@ -67,7 +68,8 @@ HWTEST_F(StartOptionDisplayIdTest, start_option_display_id_001, TestSize.Level1) option.SetDisplayID(DISPLAY_ID); auto result = abilityMs_->StartAbility(want, option, nullptr); if (result == OHOS::ERR_OK) { - auto topAbility = abilityMs_->GetMissionListManagerByUserId(USER_ID_U100)->GetCurrentTopAbilityLocked(); + auto topAbility = reinterpret_cast(abilityMs_-> + GetMissionListManagerByUserId(USER_ID_U100).get())->GetCurrentTopAbilityLocked(); if (topAbility) { auto defualtDisplayId = 0; auto displayId = topAbility->GetWant().GetIntParam(Want::PARAM_RESV_DISPLAY_ID, defualtDisplayId); diff --git a/test/unittest/task_data_persistence_mgr_test/BUILD.gn b/test/unittest/task_data_persistence_mgr_test/BUILD.gn index 5ab7bb6b82..2c505dbd0c 100755 --- a/test/unittest/task_data_persistence_mgr_test/BUILD.gn +++ b/test/unittest/task_data_persistence_mgr_test/BUILD.gn @@ -41,6 +41,7 @@ ohos_unittest("task_data_persistence_mgr_test") { "${ability_runtime_innerkits_path}/ability_manager:mission_info", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_services_path}/abilitymgr:abilityms", + "${ability_runtime_services_path}/abilitymgr:mission_list", "${ability_runtime_services_path}/common:perm_verification", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/aakit:aakit_mock", "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core:appexecfwk_appmgr_mock", diff --git a/test/unittest/ui_ability_lifecycle_manager_test/BUILD.gn b/test/unittest/ui_ability_lifecycle_manager_test/BUILD.gn index b3e31e0715..6d3d0939a3 100644 --- a/test/unittest/ui_ability_lifecycle_manager_test/BUILD.gn +++ b/test/unittest/ui_ability_lifecycle_manager_test/BUILD.gn @@ -48,6 +48,7 @@ ohos_unittest("ui_ability_lifecycle_manager_test") { "${ability_runtime_innerkits_path}/ability_manager:ability_start_setting", "${ability_runtime_innerkits_path}/ability_manager:process_options", "${ability_runtime_innerkits_path}/app_manager:app_manager", + "${ability_runtime_innerkits_path}/deps_wrapper:ability_deps_wrapper", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_native_path}/ability/native:auto_startup_callback", "${ability_runtime_native_path}/appkit:appkit_manager_helper",