Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b95d4aa4 authored by Prabir Pradhan's avatar Prabir Pradhan
Browse files

InputTracer: Disallow adding new targets from a derived event tracker

There are complex interactions between features in InputDispatcher that
can lead to cancelations being generated for a derived event. When
this happens, calling dispatchToTargetHint will result in a crash.

Since it is difficult to determine exactly how to reproduce this issue
in a test case, loosen the check so that we only crash if we are trying
to add a new target, which should never happen.

Bug: 328928072
Bug: 210460522
Test: will re-enable the flag and wait for new crash reports
Change-Id: I0134a12b40e1da33a94d61b721e967dfdbc95fe8
parent 10f53929
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -101,14 +101,15 @@ std::unique_ptr<EventTrackerInterface> InputTracer::createTrackerForSyntheticEve

void InputTracer::dispatchToTargetHint(const EventTrackerInterface& cookie,
                                       const InputTarget& target) {
    if (isDerivedCookie(cookie)) {
        LOG(FATAL) << "Event target cannot be updated from a derived cookie.";
    }
    auto& eventState = getState(cookie);
    if (eventState->isEventProcessingComplete) {
        // TODO(b/210460522): Disallow adding new targets after eventProcessingComplete() is called.
        return;
    }
    if (isDerivedCookie(cookie)) {
        // TODO(b/210460522): Disallow adding new targets from a derived cookie.
        return;
    }
    // TODO(b/210460522): Determine if the event is sensitive based on the target.
}