From f8a98f864039fc28e2cfe78598d2935f77271ee1 Mon Sep 17 00:00:00 2001 From: chuanstudy Date: Sat, 13 Sep 2025 08:19:57 +0800 Subject: [PATCH] add system Signed-off-by: chuanstudy --- .../window_stage_ani/src/ani_window.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window.cpp b/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window.cpp index b1ea1e1df3..da915d4d77 100644 --- a/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window.cpp +++ b/interfaces/kits/ani/window_runtime/window_stage_ani/src/ani_window.cpp @@ -1251,12 +1251,22 @@ void AniWindow::SetTopmost(ani_env* env, ani_object obj, ani_long nativeObj, ani void AniWindow::OnSetTopmost(ani_env* env, ani_boolean isTopmost) { TLOGI(WmsLogTag::WMS_HIERARCHY, "[ANI]"); + if (!Permission::IsSystemCalling()) { + TLOGE(WmsLogTag::WMS_HIERARCHY, "[ANI]OnSetTopmost permission denied!"); + AniWindowUtils::AniThrowError(env, WmErrorCode::WM_ERROR_NOT_SYSTEM_APP); + return; + } auto window = GetWindow(); if (window == nullptr) { TLOGE(WmsLogTag::WMS_HIERARCHY, "[ANI] window is nullptr"); AniWindowUtils::AniThrowError(env, WmErrorCode::WM_ERROR_STATE_ABNORMALLY); return; } + if (!WindowHelper::IsMainWindow(windowToken_->GetType())) { + TLOGE(WmsLogTag::WMS_HIERARCHY, "[ANI] OnSetTopmost fail, not main window"); + AniWindowUtils::AniThrowError(env, WmErrorCode::WM_ERROR_INVALID_CALLING); + return; + } WmErrorCode ret = WM_JS_TO_ERROR_CODE_MAP.at(window->SetTopmost(isTopmost)); if (ret != WmErrorCode::WM_OK) { AniWindowUtils::AniThrowError(env, ret, "SetTopmost failed."); @@ -1277,6 +1287,11 @@ void AniWindow::RequestFocus(ani_env* env, ani_object obj, ani_long nativeObj, a void AniWindow::OnRequestFocus(ani_env* env, ani_boolean isFocused) { TLOGI(WmsLogTag::WMS_FOCUS, "[ANI]"); + if (!Permission::IsSystemCalling()) { + TLOGE(WmsLogTag::WMS_FOCUS, "[ANI]OnRequestFocus permission denied!"); + AniWindowUtils::AniThrowError(env, WmErrorCode::WM_ERROR_NOT_SYSTEM_APP); + return; + } auto window = GetWindow(); if (window == nullptr) { TLOGE(WmsLogTag::WMS_FOCUS, "[ANI] window is nullptr"); -- Gitee