INCLUDE PERFETTO MODULE slices.with_context;
CREATE PERFETTO TABLE _chrome_android_motion_input_reader_step (
ts TIMESTAMP,
dur DURATION,
id LONG,
android_input_id STRING,
utid LONG
) AS
SELECT
ts,
dur,
id,
trim(substr(substr(name, instr(name, 'id=')), 4), ')') AS android_input_id,
utid
FROM thread_slice AS slice
WHERE
name GLOB 'UnwantedInteractionBlocker::notifyMotion*';
CREATE PERFETTO TABLE _chrome_android_motion_input_dispatcher_step (
ts TIMESTAMP,
dur DURATION,
id LONG,
android_input_id STRING,
utid LONG
) AS
SELECT
ts,
dur,
id,
trim(substr(substr(name, instr(name, 'id=')), 4), ')') AS android_input_id,
utid
FROM thread_slice AS slice
WHERE
name GLOB 'prepareDispatchCycleLocked*chrome*';
CREATE PERFETTO TABLE chrome_deliver_android_input_event (
ts TIMESTAMP,
dur DURATION,
utid LONG,
android_input_id STRING
) AS
SELECT
slice.ts,
slice.dur,
slice.utid,
substr(substr(name, instr(name, 'id=')), 4) AS android_input_id
FROM thread_slice AS slice
WHERE
slice.name GLOB 'deliverInputEvent*';
CREATE PERFETTO TABLE chrome_android_input (
android_input_id STRING,
input_reader_processing_start_ts TIMESTAMP,
input_reader_processing_end_ts TIMESTAMP,
input_reader_utid LONG,
input_dispatcher_processing_start_ts TIMESTAMP,
input_dispatcher_processing_end_ts TIMESTAMP,
input_dispatcher_utid LONG,
deliver_input_event_start_ts TIMESTAMP,
deliver_input_event_end_ts TIMESTAMP,
deliver_input_event_utid LONG
) AS
SELECT
_chrome_android_motion_input_reader_step.android_input_id,
_chrome_android_motion_input_reader_step.ts AS input_reader_processing_start_ts,
_chrome_android_motion_input_reader_step.ts + _chrome_android_motion_input_reader_step.dur AS input_reader_processing_end_ts,
_chrome_android_motion_input_reader_step.utid AS input_reader_utid,
_chrome_android_motion_input_dispatcher_step.ts AS input_dispatcher_processing_start_ts,
_chrome_android_motion_input_dispatcher_step.ts + _chrome_android_motion_input_dispatcher_step.dur AS input_dispatcher_processing_end_ts,
_chrome_android_motion_input_dispatcher_step.utid AS input_dispatcher_utid,
chrome_deliver_android_input_event.ts AS deliver_input_event_start_ts,
chrome_deliver_android_input_event.ts + chrome_deliver_android_input_event.dur AS deliver_input_event_end_ts,
chrome_deliver_android_input_event.utid AS deliver_input_event_utid
FROM _chrome_android_motion_input_reader_step
LEFT JOIN _chrome_android_motion_input_dispatcher_step
USING (android_input_id)
LEFT JOIN chrome_deliver_android_input_event
USING (android_input_id);