blob: cd317c8c0ad4b2219133bf39febffc74793516c8 [file] [log] [blame]
import {nanos_to_string, transform} from './transform.js'
function transform_ime_trace_clients(entries) {
return transform({
obj: entries,
kind: 'entries',
name: 'entries',
children: [
[entries.entry, transform_entry_clients]
]
});
}
function transform_entry_clients(entry) {
return transform({
obj: entry,
kind: 'entry',
name: nanos_to_string(entry.elapsedRealtimeNanos) + " - " + entry.where,
children: [
[[entry.client], transform_client_dump]
],
timestamp: entry.elapsedRealtimeNanos,
stableId: 'entry'
});
}
function transform_client_dump(entry) {
return transform({
obj: transform_input_connection_call(entry),
kind: 'Client',
name: '\n- methodId ' + entry?.inputMethodManager?.curId
+ '\n- view ' + entry?.viewRootImpl?.view
+ '\n- packageName ' + entry?.editorInfo?.packageName,
children: [],
stableId: 'client'
});
}
function transform_ime_trace_service(entries) {
return transform({
obj: entries,
kind: 'entries',
name: 'entries',
children: [
[entries.entry, transform_entry_service]
]
});
}
function transform_entry_service(entry) {
return transform({
obj: entry,
kind: 'entry',
name: nanos_to_string(entry.elapsedRealtimeNanos) + " - " + entry.where,
children: [
[[entry.inputMethodService], transform_service_dump]
],
timestamp: entry.elapsedRealtimeNanos,
stableId: 'entry'
});
}
function transform_service_dump(entry) {
return transform({
obj: transform_input_connection_call(entry),
kind: 'InputMethodService',
name: '\n- windowVisible ' + entry?.windowVisible
+ '\n- decorViewVisible ' + entry?.decorViewVisible
+ '\n- packageName ' + entry?.inputEditorInfo?.packageName,
children: [],
stableId: 'service'
});
}
function transform_ime_trace_managerservice(entries) {
return transform({
obj: entries,
kind: 'entries',
name: 'entries',
children: [
[entries.entry, transform_entry_managerservice]
]
});
}
function transform_entry_managerservice(entry) {
return transform({
obj: entry,
kind: 'entry',
name: nanos_to_string(entry.elapsedRealtimeNanos) + " - " + entry.where,
children: [
[[entry.inputMethodManagerService], transform_managerservice_dump]
],
timestamp: entry.elapsedRealtimeNanos,
stableId: 'entry'
});
}
function transform_managerservice_dump(entry) {
return transform({
obj: entry,
kind: 'InputMethodManagerService',
name: '\n- methodId ' + entry?.curMethodId
+ '\n- curFocusedWindow ' + entry?.curFocusedWindowName
+ '\n- lastImeTargetWindow ' + entry?.lastImeTargetWindowName
+ '\n- inputShown ' + entry?.inputShown,
children: [],
stableId: 'managerservice'
});
}
function transform_input_connection_call(entry) {
const obj = Object.assign({}, entry)
if (obj.inputConnectionCall) {
Object.getOwnPropertyNames(obj.inputConnectionCall).forEach(name => {
const value = Object.getOwnPropertyDescriptor(obj.inputConnectionCall, name)
if (!value.value) delete obj.inputConnectionCall[name]
})
}
return obj
}
export {transform_ime_trace_clients, transform_ime_trace_service, transform_ime_trace_managerservice};