diff --git a/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp b/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp index bf783a9d9b06e44b8b1f922dacda91ade1cbfa1e..a387e3a1b1dbf988e0c66dd1347678e0d6edb7a2 100644 --- a/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp +++ b/interfaces/kits/napi/window_runtime/window_napi/js_window.cpp @@ -5859,6 +5859,8 @@ napi_value JsWindow::OnSnapshotIgnorePrivacy(napi_env env, napi_callback_info in auto nativePixelMap = Media::PixelMapNapi::CreatePixelMap(env, pixelMap); if (nativePixelMap == nullptr) { + task->Reject(env, JsErrUtils::CreateJsError(env, WmErrorCode::WM_ERROR_STATE_ABNORMALLY, + "[window][snapshotIgnorePrivacy]msg: get nativePixelMap is null")); TLOGNE(WmsLogTag::WMS_ATTRIBUTE, "get nativePixelMap is null"); return; } diff --git a/wm/src/window_scene_session_impl.cpp b/wm/src/window_scene_session_impl.cpp index 0b9208529e4c29487920a020ad8bb5ed316ef63b..793fd300ec037a2cb3bb78619cda29b29497e3fb 100644 --- a/wm/src/window_scene_session_impl.cpp +++ b/wm/src/window_scene_session_impl.cpp @@ -5419,7 +5419,7 @@ WSError WindowSceneSessionImpl::GetTopNavDestinationName(std::string& topNavDest GetWindowId(), navDestInfoJsonStr.c_str()); return WSError::WS_DO_NOTHING; } - if (navDestInfoJson.contains("name")) { + if (navDestInfoJson.contains("name") && navDestInfoJson["name"].is_string()) { navDestInfoJson["name"].get_to(topNavDestName); } TLOGI(WmsLogTag::WMS_ATTRIBUTE, "winId=%{public}u, navDestInfoJsonStr=%{public}s, topNavDestName=%{public}s", diff --git a/wm/test/unittest/window_scene_session_impl_test2.cpp b/wm/test/unittest/window_scene_session_impl_test2.cpp index a0a366cd17bb16c6455330214a6900031bce9476..ba8ccc482a5c607fea18416188df97dd7371e1f3 100644 --- a/wm/test/unittest/window_scene_session_impl_test2.cpp +++ b/wm/test/unittest/window_scene_session_impl_test2.cpp @@ -462,6 +462,10 @@ HWTEST_F(WindowSceneSessionImplTest2, GetTopNavDestinationName01, TestSize.Level windowSceneSession->GetTopNavDestinationName(topNavDestName); EXPECT_EQ(topNavDestName, ""); + EXPECT_CALL(*uiContent, GetTopNavDestinationInfo(_, _)).WillOnce(Return("{\"name\":1}")); + windowSceneSession->GetTopNavDestinationName(topNavDestName); + EXPECT_EQ(topNavDestName, ""); + EXPECT_CALL(*uiContent, GetTopNavDestinationInfo(_, _)).WillOnce(Return("{\"name\":\"test\"}")); windowSceneSession->GetTopNavDestinationName(topNavDestName); EXPECT_EQ(topNavDestName, "test");