From d2f0618a64072fa2d0df47ad7cc5f80a94748baf Mon Sep 17 00:00:00 2001 From: 18795846185 Date: Thu, 29 May 2025 16:07:05 +0800 Subject: [PATCH 1/3] clm2025-IHiddenStartObserver Signed-off-by: 18795846185 Change-Id: Ic53d2497c2d5d95e1e31a8ce6b664cb31b4570aa --- .../js_embeddable_ui_ability_context.cpp | 4 - interfaces/inner_api/ability_manager/BUILD.gn | 195 +++++++++++++++++- ...rt_observer.h => IHiddenStartObserver.idl} | 61 ++---- .../include/hidden_start_observer_proxy.h | 50 ----- .../include/hidden_start_observer_stub.h | 45 ---- .../src/hidden_start_observer_proxy.cpp | 69 ------- .../src/hidden_start_observer_stub.cpp | 49 ----- interfaces/inner_api/wantagent/BUILD.gn | 5 +- services/abilitymgr/BUILD.gn | 3 + .../src/hidden_start_observer_manager.cpp | 4 +- .../mock_ihiddenstartobserver.h | 4 +- .../ability_manager_proxy_sixth_test.cpp | 4 +- .../BUILD.gn | 10 +- .../hidden_start_observer_manager_test.cpp | 2 +- .../ui_extension_context_test/BUILD.gn | 1 + .../ui_extension_context_test.cpp | 90 ++++++++ 16 files changed, 324 insertions(+), 272 deletions(-) rename interfaces/inner_api/ability_manager/{include/ihidden_start_observer.h => IHiddenStartObserver.idl} (44%) delete mode 100644 interfaces/inner_api/ability_manager/include/hidden_start_observer_proxy.h delete mode 100644 interfaces/inner_api/ability_manager/include/hidden_start_observer_stub.h delete mode 100644 interfaces/inner_api/ability_manager/src/hidden_start_observer_proxy.cpp delete mode 100644 interfaces/inner_api/ability_manager/src/hidden_start_observer_stub.cpp diff --git a/frameworks/native/ability/native/ui_extension_ability/js_embeddable_ui_ability_context.cpp b/frameworks/native/ability/native/ui_extension_ability/js_embeddable_ui_ability_context.cpp index 4c057d7752d..f846cc4dda4 100644 --- a/frameworks/native/ability/native/ui_extension_ability/js_embeddable_ui_ability_context.cpp +++ b/frameworks/native/ability/native/ui_extension_ability/js_embeddable_ui_ability_context.cpp @@ -567,7 +567,6 @@ napi_value JsEmbeddableUIAbilityContext::OnSetRestoreEnabled(napi_env env, NapiC napi_value JsEmbeddableUIAbilityContext::OnSetColorMode(napi_env env, NapiCallbackInfo& info) { if (IsEmbeddableStart(screenMode_)) { - TAG_LOGE(AAFwkTag::UI_EXT, "OnSetColorMode in half screen mode"); CHECK_POINTER_RETURN(env, jsUIExtensionContext_); return jsUIExtensionContext_->OnSetColorMode(env, info); } @@ -578,7 +577,6 @@ napi_value JsEmbeddableUIAbilityContext::OnSetColorMode(napi_env env, NapiCallba napi_value JsEmbeddableUIAbilityContext::OnStartUIServiceExtension(napi_env env, NapiCallbackInfo& info) { if (IsEmbeddableStart(screenMode_)) { - TAG_LOGE(AAFwkTag::UI_EXT, "OnStartUIServiceExtension in half screen mode"); CHECK_POINTER_RETURN(env, jsUIExtensionContext_); return jsUIExtensionContext_->OnStartUIServiceExtension(env, info); } @@ -589,7 +587,6 @@ napi_value JsEmbeddableUIAbilityContext::OnStartUIServiceExtension(napi_env env, napi_value JsEmbeddableUIAbilityContext::OnConnectUIServiceExtension(napi_env env, NapiCallbackInfo& info) { if (IsEmbeddableStart(screenMode_)) { - TAG_LOGE(AAFwkTag::UI_EXT, "OnConnectUIServiceExtension in half screen mode"); CHECK_POINTER_RETURN(env, jsUIExtensionContext_); return jsUIExtensionContext_->OnConnectUIServiceExtension(env, info); } @@ -600,7 +597,6 @@ napi_value JsEmbeddableUIAbilityContext::OnConnectUIServiceExtension(napi_env en napi_value JsEmbeddableUIAbilityContext::OnDisconnectUIServiceExtension(napi_env env, NapiCallbackInfo& info) { if (IsEmbeddableStart(screenMode_)) { - TAG_LOGE(AAFwkTag::UI_EXT, "OnConnectUIServiceExtension in half screen mode"); CHECK_POINTER_RETURN(env, jsUIExtensionContext_); return jsUIExtensionContext_->OnDisconnectUIServiceExtension(env, info); } diff --git a/interfaces/inner_api/ability_manager/BUILD.gn b/interfaces/inner_api/ability_manager/BUILD.gn index 0c0c0c6e71d..3edbd459510 100644 --- a/interfaces/inner_api/ability_manager/BUILD.gn +++ b/interfaces/inner_api/ability_manager/BUILD.gn @@ -11,8 +11,29 @@ # See the License for the specific language governing permissions and # limitations under the License. +import("//build/config/components/idl_tool/idl.gni") import("//build/ohos.gni") import("//foundation/ability/ability_runtime/ability_runtime.gni") +idl_gen_interface("ability_manager_interface") { + sources = [ + "IHiddenStartObserver.idl" + ] + sources_common = [ + + ] + log_domainid = "0xD001336" + log_tag = "AbilityMgr" + subsystem_name = "ability" + part_name = "ability_runtime" +} + +config("ability_manager_idl_config") { + include_dirs = [ + "${ability_runtime_innerkits_path}/dataobs_manager/include", + "${target_gen_dir}", + "include/", + ] +} config("ability_manager_public_config") { visibility = [ ":*" ] @@ -39,6 +60,7 @@ config("ability_manager_public_config") { "${ability_runtime_path}/interfaces/kits/native/appkit/dfr", "${ability_runtime_path}/interfaces/kits/native/appkit", "${ability_runtime_innerkits_path}/dataobs_manager/include", + "${target_gen_dir}", ] defines = [] @@ -61,10 +83,174 @@ config("ability_manager_public_config") { } } +ohos_source_set("ability_manager_proxy") { + sanitize = { + cfi = true + cfi_cross_dso = true + debug = false + } + + output_values = get_target_outputs(":ability_manager_interface") + source_values = [ + "*hidden_start_observer_proxy.cpp", + ] + sources = filter_include(output_values, source_values) + + public_configs = [ + ":ability_manager_idl_config", + "${ability_runtime_services_path}/abilitymgr:abilityms_config", + ] + + public_deps = [ ":ability_connect_callback_stub" ] + + deps = [ + ":ability_manager_interface", + ":ability_start_options", + ":ability_start_setting", + ":mission_info", + ":process_options", + ":start_window_option", + "${ability_runtime_innerkits_path}/app_manager:app_manager", + "${ability_runtime_path}/utils/global/freeze:freeze_util", + "${ability_runtime_services_path}/abilitymgr:wantagent_manager", + ] + + external_deps = [ + "bundle_framework:libappexecfwk_common", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "eventhandler:libeventhandler", + "hilog:libhilog", + "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "ipc:ipc_core", + "ipc:ipc_napi", + "jsoncpp:jsoncpp", + "relational_store:native_dataability", + "samgr:samgr_proxy", + ] + + if (host_cpu != "arm64") { + external_deps += [ "relational_store:native_rdb" ] + } + + public_external_deps = [ + "ability_base:base", + "ability_base:configuration", + "ability_base:session_info", + "ability_base:want", + "ability_base:zuri", + "background_task_mgr:bgtaskmgr_innerkits", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "init:libbegetutil", + "jsoncpp:jsoncpp", + "relational_store:native_dataability", + "relational_store:native_rdb", + ] + + if (ability_runtime_graphics) { + deps += [] + external_deps += [ + "ability_base:session_info", + "image_framework:image_native", + "window_manager:libwsutils", + "window_manager:session_manager_lite", + ] + public_external_deps += [ "graphic_2d:color_manager" ] + } + subsystem_name = "ability" + part_name = "ability_runtime" +} + +ohos_source_set("ability_manager_stub") { + sanitize = { + cfi = true + cfi_cross_dso = true + debug = false + } + + output_values = get_target_outputs(":ability_manager_interface") + source_values = [ + "*hidden_start_observer_stub.cpp", + ] + sources = filter_include(output_values, source_values) + + public_configs = [ + ":ability_manager_idl_config", + "${ability_runtime_services_path}/abilitymgr:abilityms_config", + ] + + public_deps = [ ":ability_connect_callback_stub" ] + + deps = [ + ":ability_manager_interface", + ":ability_start_options", + ":ability_start_setting", + ":mission_info", + ":process_options", + ":start_window_option", + "${ability_runtime_innerkits_path}/app_manager:app_manager", + "${ability_runtime_path}/utils/global/freeze:freeze_util", + "${ability_runtime_services_path}/abilitymgr:wantagent_manager", + ] + + external_deps = [ + "bundle_framework:libappexecfwk_common", + "c_utils:utils", + "common_event_service:cesfwk_innerkits", + "eventhandler:libeventhandler", + "hilog:libhilog", + "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "ipc:ipc_core", + "ipc:ipc_napi", + "jsoncpp:jsoncpp", + "relational_store:native_dataability", + "samgr:samgr_proxy", + ] + + if (host_cpu != "arm64") { + external_deps += [ "relational_store:native_rdb" ] + } + + public_external_deps = [ + "ability_base:base", + "ability_base:configuration", + "ability_base:session_info", + "ability_base:want", + "ability_base:zuri", + "background_task_mgr:bgtaskmgr_innerkits", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "init:libbegetutil", + "jsoncpp:jsoncpp", + "relational_store:native_dataability", + "relational_store:native_rdb", + ] + + if (ability_runtime_graphics) { + deps += [] + external_deps += [ + "ability_base:session_info", + "image_framework:image_native", + "window_manager:libwsutils", + "window_manager:session_manager_lite", + ] + public_external_deps += [ "graphic_2d:color_manager" ] + } + subsystem_name = "ability" + part_name = "ability_runtime" +} + ohos_shared_library("ability_manager") { + sanitize = { + cfi = true + cfi_cross_dso = true + debug = false + } use_exceptions = true branch_protector_ret = "pac_ret" - sources = [ "${ability_runtime_native_path}/ability/native/data_ability_operation.cpp", "${ability_runtime_native_path}/ability/native/data_ability_operation_builder.cpp", @@ -107,8 +293,6 @@ ohos_shared_library("ability_manager") { "${ability_runtime_services_path}/abilitymgr/src/user_callback_proxy.cpp", "${ability_runtime_services_path}/abilitymgr/src/user_callback_stub.cpp", "${ability_runtime_services_path}/abilitymgr/src/window_config.cpp", - "src/hidden_start_observer_proxy.cpp", - "src/hidden_start_observer_stub.cpp", "src/status_bar_delegate/status_bar_delegate_proxy.cpp", "src/status_bar_delegate/status_bar_delegate_stub.cpp", "src/window_manager_service_handler_proxy.cpp", @@ -125,6 +309,7 @@ ohos_shared_library("ability_manager") { public_configs = [ ":ability_manager_public_config", + ":ability_manager_idl_config", "${ability_runtime_services_path}/abilitymgr:abilityms_config", ] @@ -133,6 +318,8 @@ ohos_shared_library("ability_manager") { deps = [ ":ability_start_options", ":ability_start_setting", + ":ability_manager_proxy", + ":ability_manager_stub", ":mission_info", ":process_options", ":start_window_option", @@ -419,6 +606,8 @@ ohos_shared_library("ability_connect_callback_stub") { "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "jsoncpp:jsoncpp", + "relational_store:native_dataability", + "relational_store:native_rdb", ] if (ability_runtime_graphics) { external_deps += [ "graphic_2d:color_manager" ] diff --git a/interfaces/inner_api/ability_manager/include/ihidden_start_observer.h b/interfaces/inner_api/ability_manager/IHiddenStartObserver.idl similarity index 44% rename from interfaces/inner_api/ability_manager/include/ihidden_start_observer.h rename to interfaces/inner_api/ability_manager/IHiddenStartObserver.idl index 663f58c3024..8afe667d8c6 100644 --- a/interfaces/inner_api/ability_manager/include/ihidden_start_observer.h +++ b/interfaces/inner_api/ability_manager/IHiddenStartObserver.idl @@ -1,43 +1,18 @@ -/* - * Copyright (c) 2025 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_IHIDDEN_START_OBSERVER_H -#define OHOS_ABILITY_RUNTIME_IHIDDEN_START_OBSERVER_H - -#include -#include "iremote_object.h" -#include "iremote_broker.h" - -namespace OHOS { -namespace AAFwk { -class IHiddenStartObserver : public OHOS::IRemoteBroker { -public: - DECLARE_INTERFACE_DESCRIPTOR(u"ohos.aafwk.IHiddenStartObserver"); - - /** - * IsHiddenStart, return if the given app is started hidden. - * - * @param pid Pid of the given app's process. - * @return if the given app is started hidden - */ - virtual bool IsHiddenStart(int32_t pid) = 0; - - enum class Message { - TRANSACT_ON_IS_HIDDEN_START = 0, - }; -}; -} // namespace AAFwk -} // namespace OHOS -#endif // OHOS_ABILITY_RUNTIME_IHIDDEN_START_OBSERVER_H \ No newline at end of file +/* + * Copyright (c) 2025 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. + */ + +interface OHOS.AAFwk.IHiddenStartObserver { + boolean IsHiddenStart([in] int pid); +} \ No newline at end of file diff --git a/interfaces/inner_api/ability_manager/include/hidden_start_observer_proxy.h b/interfaces/inner_api/ability_manager/include/hidden_start_observer_proxy.h deleted file mode 100644 index 40b0b2a0743..00000000000 --- a/interfaces/inner_api/ability_manager/include/hidden_start_observer_proxy.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2025 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_HIDDEN_START_OBSERVER_PROXY_H -#define OHOS_ABILITY_RUNTIME_HIDDEN_START_OBSERVER_PROXY_H - -#include "iremote_proxy.h" -#include "ihidden_start_observer.h" - -namespace OHOS { -namespace AAFwk { -class HiddenStartObserverProxy : public IRemoteProxy { -public: - explicit HiddenStartObserverProxy(const sptr &impl); - virtual ~HiddenStartObserverProxy() = default; - - /** - * IsHiddenStart, return if the given app is started hidden. - * - * @param pid Pid of the given app's process. - * @return if the given app is started hidden - */ - virtual bool IsHiddenStart(int32_t pid) override; - -private: - /** - * WriteInterfaceToken. - * - * @param data The message parcel data. - * @return Flag whether write is successful. - */ - bool WriteInterfaceToken(MessageParcel &data); - static inline BrokerDelegator delegator_; - int32_t SendTransactCmd(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option); -}; -} // namespace AAFwk -} // namespace OHOS -#endif // OHOS_ABILITY_RUNTIME_HIDDEN_START_OBSERVER_PROXY_H \ No newline at end of file diff --git a/interfaces/inner_api/ability_manager/include/hidden_start_observer_stub.h b/interfaces/inner_api/ability_manager/include/hidden_start_observer_stub.h deleted file mode 100644 index cf7a8678659..00000000000 --- a/interfaces/inner_api/ability_manager/include/hidden_start_observer_stub.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2025 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_HIDDEN_START_OBSERVER_STUB_H -#define OHOS_ABILITY_RUNTIME_HIDDEN_START_OBSERVER_STUB_H - -#include -#include - -#include "iremote_stub.h" -#include "nocopyable.h" -#include "string_ex.h" -#include "app_mgr_constants.h" -#include "ihidden_start_observer.h" - -namespace OHOS { -namespace AAFwk { -class HiddenStartObserverStub : public IRemoteStub { -public: - HiddenStartObserverStub() = default; - virtual ~HiddenStartObserverStub() = default; - - virtual int OnRemoteRequest( - uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override; - -private: - int32_t HandleIsHiddenStart(MessageParcel &data, MessageParcel &reply); - - DISALLOW_COPY_AND_MOVE(HiddenStartObserverStub); -}; -} // namespace AAFwk -} // namespace OHOS -#endif // OHOS_ABILITY_RUNTIME_HIDDEN_START_OBSERVER_STUB_H \ No newline at end of file diff --git a/interfaces/inner_api/ability_manager/src/hidden_start_observer_proxy.cpp b/interfaces/inner_api/ability_manager/src/hidden_start_observer_proxy.cpp deleted file mode 100644 index 7f76a178ba9..00000000000 --- a/interfaces/inner_api/ability_manager/src/hidden_start_observer_proxy.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2025 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. - */ - -#include "hidden_start_observer_proxy.h" - -#include "hilog_tag_wrapper.h" -#include "ipc_types.h" - - -namespace OHOS { -namespace AAFwk { -HiddenStartObserverProxy::HiddenStartObserverProxy( - const sptr &impl) : IRemoteProxy(impl) -{} - -bool HiddenStartObserverProxy::WriteInterfaceToken(MessageParcel &data) -{ - if (!data.WriteInterfaceToken(HiddenStartObserverProxy::GetDescriptor())) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "write interface token failed"); - return false; - } - return true; -} - -bool HiddenStartObserverProxy::IsHiddenStart(int32_t pid) -{ - MessageParcel data; - MessageParcel reply; - MessageOption option(MessageOption::TF_SYNC); - if (!WriteInterfaceToken(data)) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "WriteInterfaceToken failed"); - return false; - } - data.WriteInt32(pid); - int32_t ret = SendTransactCmd( - static_cast(IHiddenStartObserver::Message::TRANSACT_ON_IS_HIDDEN_START), - data, reply, option); - if (ret != NO_ERROR) { - TAG_LOGW(AAFwkTag::ABILITYMGR, "SendRequest is failed, error code: %{public}d.", ret); - return false; - } - return reply.ReadBool(); -} - -int32_t HiddenStartObserverProxy::SendTransactCmd(uint32_t code, MessageParcel &data, - MessageParcel &reply, MessageOption &option) -{ - sptr remote = Remote(); - if (remote == nullptr) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "Remote is nullptr."); - return ERR_NULL_OBJECT; - } - - return remote->SendRequest(code, data, reply, option); -} -} // namespace AAFwk -} // namespace OHOS \ No newline at end of file diff --git a/interfaces/inner_api/ability_manager/src/hidden_start_observer_stub.cpp b/interfaces/inner_api/ability_manager/src/hidden_start_observer_stub.cpp deleted file mode 100644 index 0b47d6ff5a4..00000000000 --- a/interfaces/inner_api/ability_manager/src/hidden_start_observer_stub.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2025 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. - */ - -#include "hidden_start_observer_stub.h" -#include "appexecfwk_errors.h" -#include "hilog_tag_wrapper.h" -#include "ipc_types.h" -#include "iremote_object.h" - -namespace OHOS { -namespace AAFwk { -int HiddenStartObserverStub::OnRemoteRequest( - uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) -{ - std::u16string descriptor = HiddenStartObserverStub::GetDescriptor(); - std::u16string remoteDescriptor = data.ReadInterfaceToken(); - if (descriptor != remoteDescriptor) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "local descriptor is not equal to remote."); - return ERR_INVALID_STATE; - } - - if (static_cast(code) == Message::TRANSACT_ON_IS_HIDDEN_START) { - return HandleIsHiddenStart(data, reply); - } - TAG_LOGW(AAFwkTag::ABILITYMGR, "HiddenStartObserverStub::OnRemoteRequest, default case, need check"); - return IPCObjectStub::OnRemoteRequest(code, data, reply, option); -} - -int32_t HiddenStartObserverStub::HandleIsHiddenStart(MessageParcel &data, MessageParcel &reply) -{ - int32_t pid = data.ReadInt32(); - bool result = IsHiddenStart(pid); - reply.WriteBool(result); - return NO_ERROR; -} -} // namespace AAFwk -} // namespace OHOS \ No newline at end of file diff --git a/interfaces/inner_api/wantagent/BUILD.gn b/interfaces/inner_api/wantagent/BUILD.gn index a9f3008821c..ef7c8e71d29 100644 --- a/interfaces/inner_api/wantagent/BUILD.gn +++ b/interfaces/inner_api/wantagent/BUILD.gn @@ -64,7 +64,10 @@ ohos_shared_library("wantagent_innerkits") { "src/want_agent_info.cpp", ] - public_configs = [ ":wantagent_innerkits_public_config" ] + public_configs = [ + ":wantagent_innerkits_public_config", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", + ] deps = [ "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", diff --git a/services/abilitymgr/BUILD.gn b/services/abilitymgr/BUILD.gn index af8b5ab776e..50346645058 100644 --- a/services/abilitymgr/BUILD.gn +++ b/services/abilitymgr/BUILD.gn @@ -119,6 +119,7 @@ ohos_shared_library("abilityms") { configs = [ ":abilityms_config", ":abilityms_exception_config", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", ] include_dirs = [ "${ability_runtime_services_path}/appdfr/include", @@ -131,6 +132,8 @@ ohos_shared_library("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:ability_manager_proxy", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_stub", "${ability_runtime_innerkits_path}/ability_manager:mission_info", "${ability_runtime_innerkits_path}/ability_manager:process_options", "${ability_runtime_innerkits_path}/ability_manager:start_window_option", diff --git a/services/abilitymgr/src/hidden_start_observer_manager.cpp b/services/abilitymgr/src/hidden_start_observer_manager.cpp index 134d481d65a..155f17c67b2 100644 --- a/services/abilitymgr/src/hidden_start_observer_manager.cpp +++ b/services/abilitymgr/src/hidden_start_observer_manager.cpp @@ -98,11 +98,13 @@ bool HiddenStartObserverManager::IsHiddenStart(int32_t pid) HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); auto observersCopy = GetObserversCopy(); TAG_LOGE(AAFwkTag::ABILITYMGR, "Need query %{public}zu observers.", observersCopy.size()); + bool funcResult = false; for (auto it = observersCopy.begin(); it != observersCopy.end(); ++it) { if (*it == nullptr) { continue; } - if ((*it)->IsHiddenStart(pid)) { + (*it)->IsHiddenStart(pid, funcResult); + if (funcResult) { return true; } } diff --git a/test/moduletest/ability_manager_client_test/mock_ihiddenstartobserver.h b/test/moduletest/ability_manager_client_test/mock_ihiddenstartobserver.h index 7e83a7fb17b..01b57ba88a8 100644 --- a/test/moduletest/ability_manager_client_test/mock_ihiddenstartobserver.h +++ b/test/moduletest/ability_manager_client_test/mock_ihiddenstartobserver.h @@ -21,9 +21,9 @@ namespace OHOS { namespace AAFwk { class MockIHiddenStartObserver : public IHiddenStartObserver { public: - bool IsHiddenStart(int32_t pid) override + ErrCode IsHiddenStart(int32_t pid, bool& funcResult) override { - return true; + return ERR_OK; } sptr AsObject() override { diff --git a/test/unittest/ability_manager_proxy_sixth_test/ability_manager_proxy_sixth_test.cpp b/test/unittest/ability_manager_proxy_sixth_test/ability_manager_proxy_sixth_test.cpp index 8492ec9fa5a..c1a47f02856 100644 --- a/test/unittest/ability_manager_proxy_sixth_test/ability_manager_proxy_sixth_test.cpp +++ b/test/unittest/ability_manager_proxy_sixth_test/ability_manager_proxy_sixth_test.cpp @@ -49,9 +49,9 @@ public: class MockIHiddenStartObserver : public IHiddenStartObserver { public: - bool IsHiddenStart(int32_t pid) + OHOS::ErrCode IsHiddenStart(int32_t pid, bool& funcResult) { - return false; + return ERR_OK; } sptr AsObject() { diff --git a/test/unittest/hidden_start_observer_manager_test/BUILD.gn b/test/unittest/hidden_start_observer_manager_test/BUILD.gn index 9403ccd18e1..0fbcaa021ed 100644 --- a/test/unittest/hidden_start_observer_manager_test/BUILD.gn +++ b/test/unittest/hidden_start_observer_manager_test/BUILD.gn @@ -25,14 +25,20 @@ ohos_unittest("hidden_start_observer_manager_test") { } module_out_path = module_output_path - include_dirs = [ "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core/include" ] + include_dirs = [ + "${ability_runtime_test_path}/mock/services_abilitymgr_test/libs/appexecfwk_core/include", + "${target_gen_dir}", + ] sources = [ "hidden_start_observer_manager_test.cpp", "${ability_runtime_services_path}/abilitymgr/src/hidden_start_observer_manager.cpp", ] - configs = [ "${ability_runtime_services_path}/abilitymgr:abilityms_config" ] + configs = [ + "${ability_runtime_services_path}/abilitymgr:abilityms_config", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", + ] deps = [ "${ability_runtime_innerkits_path}/app_manager:app_manager", diff --git a/test/unittest/hidden_start_observer_manager_test/hidden_start_observer_manager_test.cpp b/test/unittest/hidden_start_observer_manager_test/hidden_start_observer_manager_test.cpp index c09db615b7a..27cba015b2f 100644 --- a/test/unittest/hidden_start_observer_manager_test/hidden_start_observer_manager_test.cpp +++ b/test/unittest/hidden_start_observer_manager_test/hidden_start_observer_manager_test.cpp @@ -72,7 +72,7 @@ public: IHiddenStartObserverMock() = default; virtual ~IHiddenStartObserverMock() = default; - bool IsHiddenStart(int32_t pid) override + ErrCode IsHiddenStart(int32_t pid, bool& funcResult) override { return mockReturnValue; } diff --git a/test/unittest/ui_extension_context_test/BUILD.gn b/test/unittest/ui_extension_context_test/BUILD.gn index 29c903dc6cd..b79abe1726a 100644 --- a/test/unittest/ui_extension_context_test/BUILD.gn +++ b/test/unittest/ui_extension_context_test/BUILD.gn @@ -40,6 +40,7 @@ ohos_unittest("ui_extension_context_test") { "${ability_runtime_native_path}/ability/native:ui_extension", "${ability_runtime_native_path}/appkit:app_context", "${ability_runtime_native_path}/appkit:appkit_native", + "${ability_runtime_native_path}/ability:ability_context_native", ] external_deps = [ diff --git a/test/unittest/ui_extension_context_test/ui_extension_context_test.cpp b/test/unittest/ui_extension_context_test/ui_extension_context_test.cpp index 607a4ce3d47..9fe7f53bbd2 100644 --- a/test/unittest/ui_extension_context_test/ui_extension_context_test.cpp +++ b/test/unittest/ui_extension_context_test/ui_extension_context_test.cpp @@ -700,5 +700,95 @@ HWTEST_F(UIExtensionContextTest, RequestComponentTerminate_0200, TestSize.Level1 context->SetWindow(window); context->RequestComponentTerminate(); } + +/** + * @tc.number: StartAbilityByType_0100 + * @tc.name: UIExtensionContext StartAbilityByType + * @tc.desc: UIExtensionContext StartAbilityByType. + */ +HWTEST_F(UIExtensionContextTest, StartAbilityByType_0100, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0100 start"); + + std::string type; + AAFwk::WantParams wantParam; + std::shared_ptr uiExtensionCallbacks{nullptr}; + + auto context = std::make_shared(); + auto result = context->StartAbilityByType(type, wantParam, uiExtensionCallbacks); + EXPECT_EQ(result, ERR_INVALID_VALUE); + + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0100 end"); +} + + /** + * @tc.number: StartAbilityByType_0200 + * @tc.name: UIExtensionContext StartAbilityByType + * @tc.desc: UIExtensionContext StartAbilityByType. + */ +HWTEST_F(UIExtensionContextTest, StartAbilityByType_0200, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0200 start"); + + std::string type; + AAFwk::WantParams wantParam; + napi_env env; + std::shared_ptr uiExtensionCallbacks = std::make_shared(env); + + auto context = std::make_shared(); + context->SetWindow(nullptr); + auto result = context->StartAbilityByType(type, wantParam, uiExtensionCallbacks); + EXPECT_EQ(result, ERR_INVALID_VALUE); + + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0200 end"); +} + + /** + * @tc.number: StartAbilityByType_0300 + * @tc.name: UIExtensionContext StartAbilityByType + * @tc.desc: UIExtensionContext StartAbilityByType. + */ +HWTEST_F(UIExtensionContextTest, StartAbilityByType_0300, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0300 start"); + + std::string type; + AAFwk::WantParams wantParam; + napi_env env; + std::shared_ptr uiExtensionCallbacks = std::make_shared(env); + sptr window = new MockWindow(); + + auto context = std::make_shared(); + context->SetWindow(window); + auto result = context->StartAbilityByType(type, wantParam, uiExtensionCallbacks); + EXPECT_EQ(result, ERR_INVALID_VALUE); + + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0300 end"); +} + + /** + * @tc.number: StartAbilityByType_0400 + * @tc.name: UIExtensionContext StartAbilityByType + * @tc.desc: UIExtensionContext StartAbilityByType. + */ +HWTEST_F(UIExtensionContextTest, StartAbilityByType_0400, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0400 start"); + + std::string type; + AAFwk::WantParams wantParam; + const std::string FLAG_AUTH_READ_URI_PERMISSION = "ability.want.params.uriPermissionFlag"; + wantParam.SetParam(FLAG_AUTH_READ_URI_PERMISSION, 0); + napi_env env; + std::shared_ptr uiExtensionCallbacks = std::make_shared(env); + sptr window = new MockWindow(); + + auto context = std::make_shared(); + context->SetWindow(window); + auto result = context->StartAbilityByType(type, wantParam, uiExtensionCallbacks); + EXPECT_EQ(result, ERR_INVALID_VALUE); + + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0400 end"); +} } // namespace AbilityRuntime } // namespace OHOS -- Gitee From 1dc2ea245c612b6fe4dd07df6c5d1dfe8fb9c953 Mon Sep 17 00:00:00 2001 From: 18795846185 Date: Thu, 29 May 2025 19:52:42 +0800 Subject: [PATCH 2/3] temp2 Signed-off-by: 18795846185 Change-Id: Ib02a3227872c3b3691d8b59c5c8c4028b779fcbe --- interfaces/inner_api/ability_manager/BUILD.gn | 2 +- interfaces/inner_api/wantagent/BUILD.gn | 2 +- tools/aa/BUILD.gn | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/interfaces/inner_api/ability_manager/BUILD.gn b/interfaces/inner_api/ability_manager/BUILD.gn index 3edbd459510..5ca74beb9c5 100644 --- a/interfaces/inner_api/ability_manager/BUILD.gn +++ b/interfaces/inner_api/ability_manager/BUILD.gn @@ -31,7 +31,7 @@ config("ability_manager_idl_config") { include_dirs = [ "${ability_runtime_innerkits_path}/dataobs_manager/include", "${target_gen_dir}", - "include/", + #"include/", ] } diff --git a/interfaces/inner_api/wantagent/BUILD.gn b/interfaces/inner_api/wantagent/BUILD.gn index ef7c8e71d29..b501ae1fe0a 100644 --- a/interfaces/inner_api/wantagent/BUILD.gn +++ b/interfaces/inner_api/wantagent/BUILD.gn @@ -64,7 +64,7 @@ ohos_shared_library("wantagent_innerkits") { "src/want_agent_info.cpp", ] - public_configs = [ + public_configs = [ ":wantagent_innerkits_public_config", "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", ] diff --git a/tools/aa/BUILD.gn b/tools/aa/BUILD.gn index 45ca82c6310..ea7ab914626 100644 --- a/tools/aa/BUILD.gn +++ b/tools/aa/BUILD.gn @@ -95,6 +95,10 @@ ohos_executable("aa") { cflags += [ "-DBINDER_IPC_32BIT" ] } + configs = [ + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", + ] + deps = [ ":tools_aa_source_set" ] external_deps = [ -- Gitee From 9ce5f32730cfe693bd98c5fed4a00f731fc66351 Mon Sep 17 00:00:00 2001 From: 18795846185 Date: Fri, 30 May 2025 14:38:27 +0800 Subject: [PATCH 3/3] clm2025528-IHiddenStartObserver Signed-off-by: 18795846185 Change-Id: I78bd6e6c3f71ee022234b4b412bcb5c627f58830 --- frameworks/native/ability/native/BUILD.gn | 3 +++ interfaces/inner_api/ability_manager/BUILD.gn | 4 ++-- interfaces/inner_api/app_manager/BUILD.gn | 2 ++ interfaces/inner_api/extension_manager/BUILD.gn | 11 ++++++++++- interfaces/inner_api/wantagent/BUILD.gn | 3 +++ services/abilitymgr/BUILD.gn | 6 ++++++ services/appmgr/BUILD.gn | 5 ++++- .../hidden_start_observer_manager_test.cpp | 2 +- 8 files changed, 31 insertions(+), 5 deletions(-) diff --git a/frameworks/native/ability/native/BUILD.gn b/frameworks/native/ability/native/BUILD.gn index daafb4b1ac5..da31aacbbfd 100644 --- a/frameworks/native/ability/native/BUILD.gn +++ b/frameworks/native/ability/native/BUILD.gn @@ -302,6 +302,7 @@ ohos_shared_library("abilitykit_native") { public_configs = [ ":ability_public_config", "${ability_runtime_native_path}/ability:ability_context_public_config", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", "${ability_runtime_innerkits_path}/wantagent:wantagent_innerkits_public_config", ] @@ -313,6 +314,8 @@ ohos_shared_library("abilitykit_native") { ":ui_service_extension_connection", "${ability_runtime_innerkits_path}/ability_manager:ability_connect_callback_stub", "${ability_runtime_innerkits_path}/ability_manager:ability_manager", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_proxy", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_stub", "${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", diff --git a/interfaces/inner_api/ability_manager/BUILD.gn b/interfaces/inner_api/ability_manager/BUILD.gn index 5ca74beb9c5..dc8fac09e7b 100644 --- a/interfaces/inner_api/ability_manager/BUILD.gn +++ b/interfaces/inner_api/ability_manager/BUILD.gn @@ -316,10 +316,10 @@ ohos_shared_library("ability_manager") { public_deps = [ ":ability_connect_callback_stub" ] deps = [ - ":ability_start_options", - ":ability_start_setting", ":ability_manager_proxy", ":ability_manager_stub", + ":ability_start_options", + ":ability_start_setting", ":mission_info", ":process_options", ":start_window_option", diff --git a/interfaces/inner_api/app_manager/BUILD.gn b/interfaces/inner_api/app_manager/BUILD.gn index 99c5ec887c5..5b9b1c81904 100644 --- a/interfaces/inner_api/app_manager/BUILD.gn +++ b/interfaces/inner_api/app_manager/BUILD.gn @@ -126,6 +126,7 @@ ohos_shared_library("app_manager") { public_configs = [ ":appmgr_core_config", ":appmgr_sdk_config", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", ] defines = [ "AMS_LOG_TAG = \"AppexecfwkCore\"" ] @@ -160,6 +161,7 @@ ohos_shared_library("app_manager") { "ability_base:want", "bundle_framework:appexecfwk_base", "image_framework:image_native", + "relational_store:native_dataability", "relational_store:native_rdb", ] if (ability_runtime_child_process) { diff --git a/interfaces/inner_api/extension_manager/BUILD.gn b/interfaces/inner_api/extension_manager/BUILD.gn index 2a0d85fb821..bb2caa0f8ff 100755 --- a/interfaces/inner_api/extension_manager/BUILD.gn +++ b/interfaces/inner_api/extension_manager/BUILD.gn @@ -44,7 +44,14 @@ ohos_shared_library("extension_manager") { ] configs = [ ":extension_manager_config" ] - public_configs = [ ":extension_manager_public_config" ] + public_configs = [ + ":extension_manager_public_config", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", + ] + + deps = [ + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_interface", + ] public_deps = [ "${ability_runtime_innerkits_path}/ability_manager:ability_connect_callback_stub" ] @@ -55,6 +62,8 @@ ohos_shared_library("extension_manager") { "hilog:libhilog", "hitrace:hitrace_meter", "ipc:ipc_single", + "relational_store:native_dataability", + "relational_store:native_rdb", "safwk:system_ability_fwk", "samgr:samgr_proxy", ] diff --git a/interfaces/inner_api/wantagent/BUILD.gn b/interfaces/inner_api/wantagent/BUILD.gn index b501ae1fe0a..0f39f91c107 100644 --- a/interfaces/inner_api/wantagent/BUILD.gn +++ b/interfaces/inner_api/wantagent/BUILD.gn @@ -70,6 +70,7 @@ ohos_shared_library("wantagent_innerkits") { ] deps = [ + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_interface", "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", "${ability_runtime_innerkits_path}/error_utils:ability_runtime_error_util", "${ability_runtime_services_path}/abilitymgr:wantagent_manager", @@ -95,6 +96,8 @@ ohos_shared_library("wantagent_innerkits") { "icu:shared_icuuc", "image_framework:image_native", "resource_management:global_resmgr", + "relational_store:native_dataability", + "relational_store:native_rdb", ] if (is_double_framework) { diff --git a/services/abilitymgr/BUILD.gn b/services/abilitymgr/BUILD.gn index 50346645058..1d05fb27ae0 100644 --- a/services/abilitymgr/BUILD.gn +++ b/services/abilitymgr/BUILD.gn @@ -130,6 +130,8 @@ ohos_shared_library("abilityms") { ":wantagent_manager", "${ability_runtime_innerkits_path}/ability_manager:ability_connect_callback_stub", "${ability_runtime_innerkits_path}/ability_manager:ability_manager", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_proxy", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_stub", "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", "${ability_runtime_innerkits_path}/ability_manager:ability_start_setting", "${ability_runtime_innerkits_path}/ability_manager:ability_manager_proxy", @@ -310,6 +312,8 @@ ohos_shared_library("wantagent_manager") { "${ability_runtime_innerkits_path}/error_utils:ability_runtime_error_util", ] + configs = [ "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config" ] + external_deps = [ "ability_base:want", "c_utils:utils", @@ -419,6 +423,8 @@ ohos_shared_library("mission_list") { "src/task_data_persistence_mgr.cpp", ] + configs = [ "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config" ] + deps = [ ":abilityms", "${ability_runtime_innerkits_path}/ability_manager:ability_manager", diff --git a/services/appmgr/BUILD.gn b/services/appmgr/BUILD.gn index ade83eb7a01..b5d9da775e3 100644 --- a/services/appmgr/BUILD.gn +++ b/services/appmgr/BUILD.gn @@ -99,7 +99,10 @@ ohos_shared_library("libappms") { defines += [ "ABILITY_PLATFORM_CHECK_PERMISSION" ] } - configs = [ ":appmgr_config" ] + configs = [ + ":appmgr_config", + "${ability_runtime_innerkits_path}/ability_manager:ability_manager_idl_config", + ] cflags = [] if (target_cpu == "arm") { cflags += [ "-DBINDER_IPC_32BIT" ] diff --git a/test/unittest/hidden_start_observer_manager_test/hidden_start_observer_manager_test.cpp b/test/unittest/hidden_start_observer_manager_test/hidden_start_observer_manager_test.cpp index 27cba015b2f..2bd94cf213e 100644 --- a/test/unittest/hidden_start_observer_manager_test/hidden_start_observer_manager_test.cpp +++ b/test/unittest/hidden_start_observer_manager_test/hidden_start_observer_manager_test.cpp @@ -74,7 +74,7 @@ public: ErrCode IsHiddenStart(int32_t pid, bool& funcResult) override { - return mockReturnValue; + return funcResult = mockReturnValue; } sptr AsObject() override -- Gitee