Make a layer secure if its parent is secure.
Dialogs and context menus can be captured in screenshots even if their
parent layer/window is marked secure. Therefore we should let the secure
flag be inherited from their parents as well.
Bug: 169851503
Test: Screen capture can't capture dialogs in a window marked secure.
Test: atest libsurfaceflinger_unittest
Test: atest SurfaceFlinger_test:ScreenCaptureTest
Change-Id: I0f32a03aeb733682df787105b051c691d1da7bc6
diff --git a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
index 9ff8f4e..6ce738a 100644
--- a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
+++ b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
@@ -277,6 +277,10 @@
layer->mPotentialCursor = potentialCursor;
}
+ static void setLayerDrawingParent(const sp<Layer>& layer, const sp<Layer>& drawingParent) {
+ layer->mDrawingParent = drawingParent;
+ }
+
/* ------------------------------------------------------------------------
* Forwarding for functions being tested
*/