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

Commit 2fabbc07 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "InputDispatcher: dump injection verifier" into main

parents 34a61908 2042f272
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ public:
                                                const PointerProperties* pointerProperties,
                                                const PointerCoords* pointerCoords, int32_t flags,
                                                int32_t buttonState);
    std::string dump() const;

    void resetDevice(int32_t deviceId);

+6 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <android-base/logging.h>
#include <com_android_input_flags.h>
#include <input/InputVerifier.h>
#include <input/PrintTools.h>
#include "input_cxx_bridge.rs.h"

using android::base::Error;
@@ -61,6 +62,11 @@ Result<void> InputVerifier::processMovement(DeviceId deviceId, int32_t source, i
    }
}

std::string InputVerifier::dump() const {
    const rust::String out = android::input::verifier::dump(*mVerifier);
    return streamableToString(out);
}

void InputVerifier::resetDevice(DeviceId deviceId) {
    android::input::verifier::reset_device(*mVerifier, deviceId);
}
+5 −0
Original line number Diff line number Diff line
@@ -393,6 +393,11 @@ impl InputVerifier {
        self.hovering_pointer_ids_by_device.remove(&device_id);
    }

    /// Dump the current state of the verifier
    pub fn dump(&self) -> String {
        format!("{:?}", self.touching_pointer_ids_by_device)
    }

    fn ensure_touching_pointers_match(
        &self,
        device_id: DeviceId,
+5 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ mod ffi {
            flags: u32,
            button_state: u32,
        ) -> String;
        fn dump(verifier: &InputVerifier) -> String;
        fn reset_device(verifier: &mut InputVerifier, device_id: i32);
    }

@@ -185,6 +186,10 @@ fn process_movement(
    }
}

fn dump(verifier: &InputVerifier) -> String {
    verifier.dump()
}

fn reset_device(verifier: &mut InputVerifier, device_id: i32) {
    verifier.reset_device(DeviceId(device_id));
}
+7 −0
Original line number Diff line number Diff line
@@ -6133,6 +6133,13 @@ void InputDispatcher::dumpDispatchStateLocked(std::string& dump) const {
    const nsecs_t currentTime = now();

    dump += addLinePrefix(mConnectionManager.dump(currentTime), INDENT);
    if (!mInputFilterVerifiersByDisplay.empty()) {
        for (const auto& [displayId, verifier] : mInputFilterVerifiersByDisplay) {
            dump += addLinePrefix(std::string("Verifier on ") + displayId.toString() + " : " +
                                          verifier.dump(),
                                  INDENT);
        }
    }

    // Dump recently dispatched or dropped events from oldest to newest.
    if (!mRecentQueue.empty()) {