diff --git a/window_scene/session/host/src/scene_session.cpp b/window_scene/session/host/src/scene_session.cpp index 7bacd2bbf812fefcc955e26ca4bfff0cea3022b5..4b4d6a07b2b723c409899bf09ce374d704c6bebd 100644 --- a/window_scene/session/host/src/scene_session.cpp +++ b/window_scene/session/host/src/scene_session.cpp @@ -432,9 +432,10 @@ WSError SceneSession::ForegroundTask(const sptr& property return ret; } session->NotifySingleHandTransformChange(session->GetSingleHandTransform()); - auto leashWinSurfaceNode = session->GetLeashWinSurfaceNode(); + auto leashWinSurfaceNode = session->GetLeashWinShadowSurfaceNode(); if (leashWinSurfaceNode && sessionProperty) { bool lastPrivacyMode = sessionProperty->GetPrivacyMode() || sessionProperty->GetSystemPrivacyMode(); + AutoRSTransaction trans(session->GetRSLeashWinShadowContext()); leashWinSurfaceNode->SetSecurityLayer(lastPrivacyMode); } session->MarkAvoidAreaAsDirty(); @@ -450,8 +451,7 @@ WSError SceneSession::ForegroundTask(const sptr& property session->specificCallback_->onHandleSecureSessionShouldHide_(session); session->UpdateGestureBackEnabled(); } else { - TLOGNI(WmsLogTag::WMS_LIFE, - "%{public}s foreground specific callback does not take effect, callback function null", where); + TLOGNI(WmsLogTag::WMS_LIFE, "%{public}s foreground specific callback is null", where); } auto leashWinShadowSurfaceNode = session->GetLeashWinShadowSurfaceNode(); if (session->isUIFirstEnabled_ && leashWinShadowSurfaceNode) { @@ -4693,7 +4693,7 @@ void SceneSession::SetPrivacyMode(bool isPrivacy) TLOGE(WmsLogTag::WMS_ATTRIBUTE, "property is null"); return; } - auto surfaceNode = GetSurfaceNode(); + auto surfaceNode = GetShadowSurfaceNode(); if (!surfaceNode) { TLOGE(WmsLogTag::WMS_ATTRIBUTE, "surfaceNode_ is null"); return; @@ -4707,10 +4707,11 @@ void SceneSession::SetPrivacyMode(bool isPrivacy) property->SetPrivacyMode(isPrivacy); property->SetSystemPrivacyMode(isPrivacy); { - AutoRSTransaction trans(GetRSUIContext()); + AutoRSTransaction trans(GetRSShadowContext()); surfaceNode->SetSecurityLayer(isPrivacy); - auto leashWinSurfaceNode = GetLeashWinSurfaceNode(); + auto leashWinSurfaceNode = GetLeashWinShadowSurfaceNode(); if (leashWinSurfaceNode != nullptr) { + AutoRSTransaction leashTrans(GetRSLeashWinShadowContext()); leashWinSurfaceNode->SetSecurityLayer(isPrivacy); } } @@ -4758,7 +4759,7 @@ WMError SceneSession::SetSnapshotSkip(bool isSkip) TLOGE(WmsLogTag::WMS_ATTRIBUTE, "property is null"); return WMError::WM_ERROR_DESTROYED_OBJECT; } - auto surfaceNode = GetSurfaceNode(); + auto surfaceNode = GetShadowSurfaceNode(); if (!surfaceNode) { TLOGE(WmsLogTag::WMS_ATTRIBUTE, "surfaceNode_ is null"); return WMError::WM_ERROR_DESTROYED_OBJECT; @@ -4772,10 +4773,11 @@ WMError SceneSession::SetSnapshotSkip(bool isSkip) TLOGI(WmsLogTag::WMS_ATTRIBUTE, "winId: %{public}d, isSkip: %{public}d", GetWindowId(), isSkip); property->SetSnapshotSkip(isSkip); { - AutoRSTransaction trans(GetRSUIContext()); + AutoRSTransaction trans(GetRSShadowContext()); surfaceNode->SetSkipLayer(isSkip); - auto leashWinSurfaceNode = GetLeashWinSurfaceNode(); + auto leashWinSurfaceNode = GetLeashWinShadowSurfaceNode(); if (leashWinSurfaceNode != nullptr) { + AutoRSTransaction leashTrans(GetRSLeashWinShadowContext()); leashWinSurfaceNode->SetSkipLayer(isSkip); } } @@ -4784,7 +4786,7 @@ WMError SceneSession::SetSnapshotSkip(bool isSkip) void SceneSession::SetWatermarkEnabled(const std::string& watermarkName, bool isEnabled) { - auto surfaceNode = GetSurfaceNode(); + auto surfaceNode = GetShadowSurfaceNode(); if (!surfaceNode) { TLOGE(WmsLogTag::DEFAULT, "surfaceNode is null"); return; @@ -4792,9 +4794,10 @@ void SceneSession::SetWatermarkEnabled(const std::string& watermarkName, bool is TLOGI(WmsLogTag::DEFAULT, "watermarkName:%{public}s, isEnabled:%{public}d, wid:%{public}d", watermarkName.c_str(), isEnabled, GetPersistentId()); { - AutoRSTransaction trans(GetRSUIContext()); + AutoRSTransaction trans(GetRSShadowContext()); surfaceNode->SetWatermarkEnabled(watermarkName, isEnabled); - if (auto leashWinSurfaceNode = GetLeashWinSurfaceNode()) { + if (auto leashWinSurfaceNode = GetLeashWinShadowSurfaceNode()) { + AutoRSTransaction leashTrans(GetRSLeashWinShadowContext()); leashWinSurfaceNode->SetWatermarkEnabled(watermarkName, isEnabled); } } @@ -8651,7 +8654,7 @@ uint32_t SceneSession::GetMaxSubWindowLevel() const void SceneSession::SetColorSpace(ColorSpace colorSpace) { - auto surfaceNode = GetSurfaceNode(); + auto surfaceNode = GetShadowSurfaceNode(); if (!surfaceNode) { TLOGE(WmsLogTag::WMS_ATTRIBUTE, "surfaceNode is invalid"); return; @@ -8662,7 +8665,7 @@ void SceneSession::SetColorSpace(ColorSpace colorSpace) colorGamut = GraphicColorGamut::GRAPHIC_COLOR_GAMUT_DCI_P3; } { - AutoRSTransaction trans(GetRSUIContext()); + AutoRSTransaction trans(GetRSShadowContext()); surfaceNode->SetColorSpace(colorGamut); } } diff --git a/window_scene/test/unittest/scene_session_test.cpp b/window_scene/test/unittest/scene_session_test.cpp index b030f899e8a6ffa178afa81ecd9dd964c8e8a151..45c79ec27111881be09a2468ea65fcb26ee18834 100644 --- a/window_scene/test/unittest/scene_session_test.cpp +++ b/window_scene/test/unittest/scene_session_test.cpp @@ -594,7 +594,7 @@ HWTEST_F(SceneSessionTest, SetPrivacyMode01, TestSize.Level0) EXPECT_NE(sceneSession, nullptr); struct RSSurfaceNodeConfig config; std::shared_ptr surfaceNode = RSSurfaceNode::Create(config); - sceneSession->surfaceNode_ = surfaceNode; + sceneSession->SetSurfaceNode(surfaceNode); sceneSession->SetPrivacyMode(false); ASSERT_EQ(false, sceneSession->property_->GetPrivacyMode()); ASSERT_EQ(false, sceneSession->property_->GetSystemPrivacyMode()); @@ -615,7 +615,7 @@ HWTEST_F(SceneSessionTest, SetPrivacyMode02, TestSize.Level0) EXPECT_NE(sceneSession, nullptr); struct RSSurfaceNodeConfig config; std::shared_ptr surfaceNode = RSSurfaceNode::Create(config); - sceneSession->surfaceNode_ = surfaceNode; + sceneSession->SetSurfaceNode(surfaceNode); sceneSession->SetPrivacyMode(true); ASSERT_EQ(true, sceneSession->property_->GetPrivacyMode()); ASSERT_EQ(true, sceneSession->property_->GetSystemPrivacyMode()); @@ -639,7 +639,7 @@ HWTEST_F(SceneSessionTest, SetPrivacyMode03, TestSize.Level0) sceneSession->SetEventHandler(handler, handler); struct RSSurfaceNodeConfig config; std::shared_ptr surfaceNode = RSSurfaceNode::Create(config); - sceneSession->surfaceNode_ = surfaceNode; + sceneSession->SetSurfaceNode(surfaceNode); sceneSession->SetPrivacyMode(true); EXPECT_EQ(sceneSession->appUseControlMap_.size(), 0); } diff --git a/window_scene/test/unittest/scene_session_test4.cpp b/window_scene/test/unittest/scene_session_test4.cpp index 2ebcda0b8fea3ea8c5661cc188b511badc04e39f..b8e865aae1ae2c3a2c396536b55c7a1b313c026c 100644 --- a/window_scene/test/unittest/scene_session_test4.cpp +++ b/window_scene/test/unittest/scene_session_test4.cpp @@ -507,7 +507,7 @@ HWTEST_F(SceneSessionTest4, ProcessUpdatePropertyByAction1, TestSize.Level1) struct RSSurfaceNodeConfig config; std::shared_ptr surfaceNode = RSSurfaceNode::Create(config); - sceneSession->surfaceNode_ = surfaceNode; + sceneSession->SetSurfaceNode(surfaceNode); EXPECT_EQ(WMError::WM_OK, sceneSession->ProcessUpdatePropertyByAction(property, WSPropertyChangeAction::ACTION_UPDATE_SNAPSHOT_SKIP)); } diff --git a/window_scene/test/unittest/scene_session_test5.cpp b/window_scene/test/unittest/scene_session_test5.cpp index 9ded5b7c1299ba413431cf3c483646428c53df09..a0f51707437a28b7f5f1d33cc6e29490532b2e93 100644 --- a/window_scene/test/unittest/scene_session_test5.cpp +++ b/window_scene/test/unittest/scene_session_test5.cpp @@ -1185,7 +1185,7 @@ HWTEST_F(SceneSessionTest5, SetWatermarkEnabled, TestSize.Level1) struct RSSurfaceNodeConfig config; std::shared_ptr surfaceNode = RSSurfaceNode::Create(config); - session->surfaceNode_ = surfaceNode; + session->SetSurfaceNode(surfaceNode); session->SetWatermarkEnabled(watermarkName, true); } @@ -1700,7 +1700,7 @@ HWTEST_F(SceneSessionTest5, HandleActionUpdatePrivacyMode1, TestSize.Level0) EXPECT_NE(session->property_, nullptr); struct RSSurfaceNodeConfig config; std::shared_ptr surfaceNode = RSSurfaceNode::Create(config); - session->surfaceNode_ = surfaceNode; + session->SetSurfaceNode(surfaceNode); session->property_->SetPrivacyMode(false); sptr property = sptr::MakeSptr(); property->SetPrivacyMode(true); @@ -1725,7 +1725,7 @@ HWTEST_F(SceneSessionTest5, HandleActionUpdatePrivacyMode2, TestSize.Level1) EXPECT_NE(session->property_, nullptr); struct RSSurfaceNodeConfig config; std::shared_ptr surfaceNode = RSSurfaceNode::Create(config); - session->surfaceNode_ = surfaceNode; + session->SetSurfaceNode(surfaceNode); session->property_->SetPrivacyMode(true); sptr property = sptr::MakeSptr(); property->SetPrivacyMode(false);