diff --git a/tools/winscope/adb_proxy/winscope_proxy.py b/tools/winscope/adb_proxy/winscope_proxy.py index f8555f82f..4db7ab404 100755 --- a/tools/winscope/adb_proxy/winscope_proxy.py +++ b/tools/winscope/adb_proxy/winscope_proxy.py @@ -47,7 +47,7 @@ LOG_LEVEL = logging.WARNING PORT = 5544 # Keep in sync with WINSCOPE_PROXY_VERSION in Winscope DataAdb.vue -VERSION = '0.7' +VERSION = '0.8' WINSCOPE_VERSION_HEADER = "Winscope-Proxy-Version" WINSCOPE_TOKEN_HEADER = "Winscope-Token" @@ -139,9 +139,9 @@ TRACE_TARGETS = { 'su root cmd window logging start\necho "WM logging started."', 'su root cmd window logging stop >/dev/null 2>&1' ), - "ime_trace": TraceTarget( - File("/data/misc/wmtrace/ime_trace.pb", "ime_trace"), - 'su root ime tracing start\necho "IME trace started."', + "ime_trace_clients": TraceTarget( + File("/data/misc/wmtrace/ime_trace_clients.pb", "ime_trace_clients"), + 'su root ime tracing start\necho "Clients IME trace started."', 'su root ime tracing stop >/dev/null 2>&1' ), } diff --git a/tools/winscope/src/DataAdb.vue b/tools/winscope/src/DataAdb.vue index 3b08b98bf..92a8020a5 100644 --- a/tools/winscope/src/DataAdb.vue +++ b/tools/winscope/src/DataAdb.vue @@ -142,7 +142,7 @@ const STATES = { LOAD_DATA: 8, }; -const WINSCOPE_PROXY_VERSION = '0.7'; +const WINSCOPE_PROXY_VERSION = '0.8'; const WINSCOPE_PROXY_URL = 'http://localhost:5544'; const PROXY_ENDPOINTS = { DEVICES: '/devices/', @@ -170,8 +170,8 @@ const TRACES = { 'screen_recording': { name: 'Screen Recording', }, - 'ime_trace': { - name: 'Input Method', + 'ime_trace_clients': { + name: 'Input Method Clients', }, }; @@ -204,7 +204,7 @@ const proxyFileTypeAdapter = { 'proto_log': FILE_TYPES.PROTO_LOG, 'system_ui_trace': FILE_TYPES.SYSTEM_UI, 'launcher_trace': FILE_TYPES.LAUNCHER, - 'ime_trace': FILE_TYPES.IME_TRACE, + 'ime_trace_clients': FILE_TYPES.IME_TRACE_CLIENTS, }; const CONFIGS = Object.keys(TRACE_CONFIG).flatMap((file) => TRACE_CONFIG[file]); diff --git a/tools/winscope/src/decode.js b/tools/winscope/src/decode.js index 830455c76..b2122aeb8 100644 --- a/tools/winscope/src/decode.js +++ b/tools/winscope/src/decode.js @@ -44,7 +44,7 @@ import WaylandTrace from '@/traces/Wayland.ts'; import ProtoLogTrace from '@/traces/ProtoLog.ts'; import SystemUITrace from '@/traces/SystemUI.ts'; import LauncherTrace from '@/traces/Launcher.ts'; -import ImeTrace from '@/traces/InputMethodEditor.ts'; +import ImeTraceClients from '@/traces/InputMethodClients.ts'; import SurfaceFlingerDump from '@/dumps/SurfaceFlinger.ts'; import WindowManagerDump from '@/dumps/WindowManager.ts'; @@ -60,7 +60,7 @@ const WaylandDumpMessage = lookup_type(jsonProtoDefsWl, 'org.chromium.arc.waylan const ProtoLogMessage = lookup_type(jsonProtoDefsProtoLog, 'com.android.internal.protolog.ProtoLogFileProto'); const SystemUiTraceMessage = lookup_type(jsonProtoDefsSysUi, 'com.android.systemui.tracing.SystemUiTraceFileProto'); const LauncherTraceMessage = lookup_type(jsonProtoDefsLauncher, 'com.android.launcher3.tracing.LauncherTraceFileProto'); -const InputMethodEditorTraceMessage = lookup_type(jsonProtoDefsIme, "android.view.inputmethod.InputMethodEditorTraceFileProto"); +const InputMethodClientsTraceMessage = lookup_type(jsonProtoDefsIme, "android.view.inputmethod.InputMethodClientsTraceFileProto"); const LAYER_TRACE_MAGIC_NUMBER = [0x09, 0x4c, 0x59, 0x52, 0x54, 0x52, 0x41, 0x43, 0x45]; // .LYRTRACE const WINDOW_TRACE_MAGIC_NUMBER = [0x09, 0x57, 0x49, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x45]; // .WINTRACE @@ -69,7 +69,7 @@ const WAYLAND_TRACE_MAGIC_NUMBER = [0x09, 0x57, 0x59, 0x4c, 0x54, 0x52, 0x41, 0x const PROTO_LOG_MAGIC_NUMBER = [0x09, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x4c, 0x4f, 0x47]; // .PROTOLOG const SYSTEM_UI_MAGIC_NUMBER = [0x09, 0x53, 0x59, 0x53, 0x55, 0x49, 0x54, 0x52, 0x43]; // .SYSUITRC const LAUNCHER_MAGIC_NUMBER = [0x09, 0x4C, 0x4E, 0x43, 0x48, 0x52, 0x54, 0x52, 0x43]; // .LNCHRTRC -const IME_TRACE_MAGIC_NUMBER = [0x09, 0x49, 0x4d, 0x45, 0x54, 0x52, 0x41, 0x43, 0x45] //.IMETRACE +const IMC_TRACE_MAGIC_NUMBER = [0x09, 0x49, 0x4d, 0x43, 0x54, 0x52, 0x41, 0x43, 0x45] //.IMCTRACE const FILE_TYPES = Object.freeze({ WINDOW_MANAGER_TRACE: 'WindowManagerTrace', @@ -83,7 +83,7 @@ const FILE_TYPES = Object.freeze({ PROTO_LOG: 'ProtoLog', SYSTEM_UI: 'SystemUI', LAUNCHER: 'Launcher', - IME_TRACE: 'ImeTrace', + IME_TRACE_CLIENTS: 'ImeTraceClients', }); const WINDOW_MANAGER_ICON = 'view_compact'; @@ -108,7 +108,7 @@ const FILE_ICONS = { [FILE_TYPES.PROTO_LOG]: PROTO_LOG_ICON, [FILE_TYPES.SYSTEM_UI]: SYSTEM_UI_ICON, [FILE_TYPES.LAUNCHER]: LAUNCHER_ICON, - [FILE_TYPES.IME_TRACE]: IME_ICON, + [FILE_TYPES.IME_TRACE_CLIENTS]: IME_ICON, }; function oneOf(dataType) { @@ -128,7 +128,7 @@ const TRACE_TYPES = Object.freeze({ PROTO_LOG: 'ProtoLog', SYSTEM_UI: 'SystemUI', LAUNCHER: 'Launcher', - IME: 'ImeTrace', + IME_CLIENTS: 'ImeTraceClients', }); const TRACE_INFO = { @@ -182,11 +182,11 @@ const TRACE_INFO = { files: [oneOf(FILE_TYPES.LAUNCHER)], constructor: LauncherTrace, }, - [TRACE_TYPES.IME]: { - name: 'InputMethodEditor', + [TRACE_TYPES.IME_CLIENTS]: { + name: 'InputMethodClients', icon: IME_ICON, - files: [oneOf(FILE_TYPES.IME_TRACE)], - constructor: ImeTrace, + files: [oneOf(FILE_TYPES.IME_TRACE_CLIENTS)], + constructor: ImeTraceClients, }, }; @@ -226,6 +226,7 @@ export const TRACE_ICONS = { [TRACE_TYPES.PROTO_LOG]: PROTO_LOG_ICON, [TRACE_TYPES.SYSTEM_UI]: SYSTEM_UI_ICON, [TRACE_TYPES.LAUNCHER]: LAUNCHER_ICON, + [TRACE_TYPES.IME_CLIENTS]: IME_ICON, [DUMP_TYPES.WINDOW_MANAGER]: WINDOW_MANAGER_ICON, [DUMP_TYPES.SURFACE_FLINGER]: SURFACE_FLINGER_ICON, @@ -352,13 +353,13 @@ const FILE_DECODERS = { timeline: true, }, }, - [FILE_TYPES.IME_TRACE]: { - name: 'InputMethodEditor trace', + [FILE_TYPES.IME_TRACE_CLIENTS]: { + name: 'InputMethodClients trace', decoder: protoDecoder, decoderParams: { - type: FILE_TYPES.IME_TRACE, + type: FILE_TYPES.IME_TRACE_CLIENTS, mime: 'application/octet-stream', - protoType: InputMethodEditorTraceMessage, + protoType: InputMethodClientsTraceMessage, transform: transform_ime_trace, timeline: true, }, @@ -493,8 +494,8 @@ function detectAndDecode(buffer, fileName, store) { if (arrayStartsWith(buffer, LAUNCHER_MAGIC_NUMBER)) { return decodedFile(FILE_TYPES.LAUNCHER, buffer, fileName, store); } - if (arrayStartsWith(buffer, IME_TRACE_MAGIC_NUMBER)) { - return decodedFile(FILE_TYPES.IME_TRACE, buffer, fileName, store); + if (arrayStartsWith(buffer, IMC_TRACE_MAGIC_NUMBER)) { + return decodedFile(FILE_TYPES.IME_TRACE_CLIENTS, buffer, fileName, store); } // TODO(b/169305853): Add magic number at beginning of file for better auto detection diff --git a/tools/winscope/src/main.js b/tools/winscope/src/main.js index cc7c834b9..1c4de9264 100644 --- a/tools/winscope/src/main.js +++ b/tools/winscope/src/main.js @@ -34,7 +34,7 @@ const fileOrder = { [TRACE_TYPES.SURFACE_FLINGER]: 2, [TRACE_TYPES.TRANSACTION]: 3, [TRACE_TYPES.PROTO_LOG]: 4, - [TRACE_TYPES.IME]: 5, + [TRACE_TYPES.IME_CLIENTS]: 5, }; function sortFiles(files) { diff --git a/tools/winscope/src/mixins/FileType.js b/tools/winscope/src/mixins/FileType.js index aee04b12c..7031fe9cf 100644 --- a/tools/winscope/src/mixins/FileType.js +++ b/tools/winscope/src/mixins/FileType.js @@ -23,7 +23,7 @@ const mixin = { file.type == TRACE_TYPES.WAYLAND || file.type == TRACE_TYPES.SYSTEM_UI || file.type == TRACE_TYPES.LAUNCHER || - file.type == TRACE_TYPES.IME || + file.type == TRACE_TYPES.IME_CLIENTS || file.type == DUMP_TYPES.WINDOW_MANAGER || file.type == DUMP_TYPES.SURFACE_FLINGER || file.type == DUMP_TYPES.WAYLAND; diff --git a/tools/winscope/src/traces/InputMethodEditor.ts b/tools/winscope/src/traces/InputMethodClients.ts similarity index 84% rename from tools/winscope/src/traces/InputMethodEditor.ts rename to tools/winscope/src/traces/InputMethodClients.ts index 8339d708f..a43b15a73 100644 --- a/tools/winscope/src/traces/InputMethodEditor.ts +++ b/tools/winscope/src/traces/InputMethodClients.ts @@ -17,17 +17,17 @@ import { FILE_TYPES, TRACE_TYPES } from '@/decode.js'; import TraceBase from './TraceBase'; -export default class InputMethodEditor extends TraceBase { +export default class InputMethodClients extends TraceBase { imeTraceFile: any; constructor(files) { - const imeTraceFile = files[FILE_TYPES.IME_TRACE]; + const imeTraceFile = files[FILE_TYPES.IME_TRACE_CLIENTS]; super(imeTraceFile.data, imeTraceFile.timeline, files); this.imeTraceFile = imeTraceFile; } get type() { - return TRACE_TYPES.IME; + return TRACE_TYPES.IME_CLIENTS; } } diff --git a/tools/winscope/src/transform_ime.js b/tools/winscope/src/transform_ime.js index aca895f03..13bb9c5eb 100644 --- a/tools/winscope/src/transform_ime.js +++ b/tools/winscope/src/transform_ime.js @@ -15,10 +15,8 @@ function transform_entry(entry) { return transform({ obj: entry, kind: 'entry', - name: nanos_to_string(entry.elapsedRealtimeNanos), + name: nanos_to_string(entry.elapsedRealtimeNanos) + " - " + entry.where, children: [ - [[entry.inputMethodManagerService], transform_imms_dump], - [[entry.inputMethodService], transform_ims_dump], [[entry.clients], transform_client_dump] ], timestamp: entry.elapsedRealtimeNanos, @@ -26,15 +24,6 @@ function transform_entry(entry) { }); } -function transform_imms_dump(entry) { - return transform({ - obj: entry, - kind: 'InputMethodManagerService', - name: '', - children: [] - }); -} - function transform_client_dump(entry) { return transform({ obj: entry, @@ -44,13 +33,4 @@ function transform_client_dump(entry) { }); } -function transform_ims_dump(entry) { - return transform({ - obj: entry, - kind: 'InputMethodService', - name: '', - children: [] - }); -} - -export {transform_ime_trace}; \ No newline at end of file +export {transform_ime_trace};