Loading services/surfaceflinger/FrontEnd/LayerSnapshotBuilder.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -731,6 +731,10 @@ void LayerSnapshotBuilder::updateSnapshot(LayerSnapshot& snapshot, const Args& a : parentSnapshot.outputFilter.layerStack; } if (forceUpdate || snapshot.clientChanges & layer_state_t::eTrustedOverlayChanged) { snapshot.isTrustedOverlay = parentSnapshot.isTrustedOverlay || requested.isTrustedOverlay; } if (snapshot.isHiddenByPolicyFromParent && !snapshot.changes.test(RequestedLayerState::Changes::Created)) { if (forceUpdate || Loading Loading @@ -761,10 +765,6 @@ void LayerSnapshotBuilder::updateSnapshot(LayerSnapshot& snapshot, const Args& a (requested.flags & layer_state_t::eLayerSkipScreenshot); } if (forceUpdate || snapshot.clientChanges & layer_state_t::eTrustedOverlayChanged) { snapshot.isTrustedOverlay = parentSnapshot.isTrustedOverlay || requested.isTrustedOverlay; } if (forceUpdate || snapshot.clientChanges & layer_state_t::eStretchChanged) { snapshot.stretchEffect = (requested.stretchEffect.hasEffect()) ? requested.stretchEffect Loading services/surfaceflinger/tests/unittests/LayerHierarchyTest.h +11 −0 Original line number Diff line number Diff line Loading @@ -443,6 +443,17 @@ protected: mLifecycleManager.applyTransactions(transactions); } void setTrustedOverlay(uint32_t id, bool isTrustedOverlay) { std::vector<TransactionState> transactions; transactions.emplace_back(); transactions.back().states.push_back({}); transactions.back().states.front().state.what = layer_state_t::eTrustedOverlayChanged; transactions.back().states.front().layerId = id; transactions.back().states.front().state.isTrustedOverlay = isTrustedOverlay; mLifecycleManager.applyTransactions(transactions); } LayerLifecycleManager mLifecycleManager; }; Loading services/surfaceflinger/tests/unittests/LayerSnapshotTest.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -861,4 +861,15 @@ TEST_F(LayerSnapshotTest, setShadowRadius) { EXPECT_EQ(getSnapshot(1)->shadowSettings.length, SHADOW_RADIUS); } TEST_F(LayerSnapshotTest, setTrustedOverlayForNonVisibleInput) { hideLayer(1); setTrustedOverlay(1, true); Region touch{Rect{0, 0, 1000, 1000}}; setTouchableRegion(1, touch); UPDATE_AND_VERIFY(mSnapshotBuilder, {2}); EXPECT_TRUE(getSnapshot(1)->inputInfo.inputConfig.test( gui::WindowInfo::InputConfig::TRUSTED_OVERLAY)); } } // namespace android::surfaceflinger::frontend Loading
services/surfaceflinger/FrontEnd/LayerSnapshotBuilder.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -731,6 +731,10 @@ void LayerSnapshotBuilder::updateSnapshot(LayerSnapshot& snapshot, const Args& a : parentSnapshot.outputFilter.layerStack; } if (forceUpdate || snapshot.clientChanges & layer_state_t::eTrustedOverlayChanged) { snapshot.isTrustedOverlay = parentSnapshot.isTrustedOverlay || requested.isTrustedOverlay; } if (snapshot.isHiddenByPolicyFromParent && !snapshot.changes.test(RequestedLayerState::Changes::Created)) { if (forceUpdate || Loading Loading @@ -761,10 +765,6 @@ void LayerSnapshotBuilder::updateSnapshot(LayerSnapshot& snapshot, const Args& a (requested.flags & layer_state_t::eLayerSkipScreenshot); } if (forceUpdate || snapshot.clientChanges & layer_state_t::eTrustedOverlayChanged) { snapshot.isTrustedOverlay = parentSnapshot.isTrustedOverlay || requested.isTrustedOverlay; } if (forceUpdate || snapshot.clientChanges & layer_state_t::eStretchChanged) { snapshot.stretchEffect = (requested.stretchEffect.hasEffect()) ? requested.stretchEffect Loading
services/surfaceflinger/tests/unittests/LayerHierarchyTest.h +11 −0 Original line number Diff line number Diff line Loading @@ -443,6 +443,17 @@ protected: mLifecycleManager.applyTransactions(transactions); } void setTrustedOverlay(uint32_t id, bool isTrustedOverlay) { std::vector<TransactionState> transactions; transactions.emplace_back(); transactions.back().states.push_back({}); transactions.back().states.front().state.what = layer_state_t::eTrustedOverlayChanged; transactions.back().states.front().layerId = id; transactions.back().states.front().state.isTrustedOverlay = isTrustedOverlay; mLifecycleManager.applyTransactions(transactions); } LayerLifecycleManager mLifecycleManager; }; Loading
services/surfaceflinger/tests/unittests/LayerSnapshotTest.cpp +11 −0 Original line number Diff line number Diff line Loading @@ -861,4 +861,15 @@ TEST_F(LayerSnapshotTest, setShadowRadius) { EXPECT_EQ(getSnapshot(1)->shadowSettings.length, SHADOW_RADIUS); } TEST_F(LayerSnapshotTest, setTrustedOverlayForNonVisibleInput) { hideLayer(1); setTrustedOverlay(1, true); Region touch{Rect{0, 0, 1000, 1000}}; setTouchableRegion(1, touch); UPDATE_AND_VERIFY(mSnapshotBuilder, {2}); EXPECT_TRUE(getSnapshot(1)->inputInfo.inputConfig.test( gui::WindowInfo::InputConfig::TRUSTED_OVERLAY)); } } // namespace android::surfaceflinger::frontend