From ff3011b427f6d1b8939f1e0e383b15208410d384 Mon Sep 17 00:00:00 2001 From: Wenhui Yang Date: Thu, 19 Dec 2024 20:19:28 +0000 Subject: Include color layers in input list to fix tapjacking vulnerability We can use this to compute occlusion more accurately in inputdispatcher. Bug: 277076451 Test: app-debug.apk in the bug Test: go/wm-smoke Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:1f0301b3f1061cb89d9628bbb1d2b4594f4f29dc) Merged-In: I1e155bcf4a6a7ff1b49338ec21bb0e9ee05a54c8 Change-Id: I1e155bcf4a6a7ff1b49338ec21bb0e9ee05a54c8 --- services/surfaceflinger/FrontEnd/RequestedLayerState.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp b/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp index 621fd6c00e..a469fc52fa 100644 --- a/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp +++ b/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp @@ -594,6 +594,15 @@ bool RequestedLayerState::fillsColor() const { color.b >= 0.0_hf; } +bool RequestedLayerState::hasBufferOrSidebandStream() const { + return ((sidebandStream != nullptr) || (externalTexture != nullptr)); +} + +bool RequestedLayerState::fillsColor() const { + return !hasBufferOrSidebandStream() && color.r >= 0.0_hf && color.g >= 0.0_hf && + color.b >= 0.0_hf; +} + bool RequestedLayerState::hasBlur() const { return backgroundBlurRadius > 0 || blurRegions.size() > 0; } -- cgit v1.2.3-59-g8ed1b