DO NOT MERGE Remove window obscurement information.
If ACTION_OUTSIDE_EVENTS contain information about whether the touch is obscured, then a pattern of invisible, untouchable, unfocusable SYSTEM_ALERT_WINDOWS can be placed across the screen to determine approximate locations of touch events without the user knowing. Bug: 31097064 Test: cts-tradefed run cts --class android.security.cts.MotionEventTest Change-Id: Iebbb68231cbb76f87241201e7640a1fe3e188625 CVE-2017-0860
This commit is contained in:
parent
ea0521baee
commit
b2cc7deac7
@ -1222,15 +1222,8 @@ int32_t InputDispatcher::findTouchedWindowTargetsLocked(nsecs_t currentTime,
|
|||||||
|
|
||||||
if (maskedAction == AMOTION_EVENT_ACTION_DOWN
|
if (maskedAction == AMOTION_EVENT_ACTION_DOWN
|
||||||
&& (flags & InputWindowInfo::FLAG_WATCH_OUTSIDE_TOUCH)) {
|
&& (flags & InputWindowInfo::FLAG_WATCH_OUTSIDE_TOUCH)) {
|
||||||
int32_t outsideTargetFlags = InputTarget::FLAG_DISPATCH_AS_OUTSIDE;
|
|
||||||
if (isWindowObscuredAtPointLocked(windowHandle, x, y)) {
|
|
||||||
outsideTargetFlags |= InputTarget::FLAG_WINDOW_IS_OBSCURED;
|
|
||||||
} else if (isWindowObscuredLocked(windowHandle)) {
|
|
||||||
outsideTargetFlags |= InputTarget::FLAG_WINDOW_IS_PARTIALLY_OBSCURED;
|
|
||||||
}
|
|
||||||
|
|
||||||
mTempTouchState.addOrUpdateWindow(
|
mTempTouchState.addOrUpdateWindow(
|
||||||
windowHandle, outsideTargetFlags, BitSet32(0));
|
windowHandle, InputTarget::FLAG_DISPATCH_AS_OUTSIDE, BitSet32(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user