1/* 2 * Copyright (C) 2024 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17import {assertDefined} from 'common/assert_utils'; 18import {TamperedMessageType} from 'parsers/tampered_message_type'; 19import {TamperedProtos} from 'parsers/window_manager/tampered_protos'; 20import root from 'protos/windowmanager/udc/json'; 21 22const windowManagerTraceFileProto = TamperedMessageType.tamper( 23 root.lookupType('com.android.server.wm.WindowManagerTraceFileProto'), 24); 25 26const entryField = assertDefined(windowManagerTraceFileProto.fields['entry']); 27 28const windowManagerServiceField = assertDefined(entryField.tamperedMessageType) 29 .fields['windowManagerService']; 30 31const rootWindowContainerField = assertDefined( 32 windowManagerServiceField.tamperedMessageType, 33).fields['rootWindowContainer']; 34 35const windowContainerField = assertDefined( 36 rootWindowContainerField.tamperedMessageType, 37).fields['windowContainer']; 38 39const windowContainerChildField = assertDefined( 40 windowContainerField.tamperedMessageType, 41).fields['children']; 42 43export const TAMPERED_PROTOS_UDC: TamperedProtos = { 44 entryField, 45 46 windowManagerServiceField: assertDefined( 47 windowManagerTraceFileProto.fields['entry'].tamperedMessageType, 48 ).fields['windowManagerService'], 49 50 rootWindowContainerField: assertDefined( 51 windowManagerServiceField.tamperedMessageType, 52 ).fields['rootWindowContainer'], 53 54 windowContainerField: assertDefined( 55 rootWindowContainerField.tamperedMessageType, 56 ).fields['windowContainer'], 57 58 windowContainerChildField: assertDefined( 59 windowContainerField.tamperedMessageType, 60 ).fields['children'], 61 62 displayContentField: assertDefined( 63 windowContainerChildField.tamperedMessageType, 64 ).fields['displayContent'], 65 66 displayAreaField: assertDefined(windowContainerChildField.tamperedMessageType) 67 .fields['displayArea'], 68 69 taskField: assertDefined(windowContainerChildField.tamperedMessageType) 70 .fields['task'], 71 72 activityField: assertDefined(windowContainerChildField.tamperedMessageType) 73 .fields['activity'], 74 75 windowTokenField: assertDefined(windowContainerChildField.tamperedMessageType) 76 .fields['windowToken'], 77 78 windowStateField: assertDefined(windowContainerChildField.tamperedMessageType) 79 .fields['window'], 80 81 taskFragmentField: assertDefined( 82 windowContainerChildField.tamperedMessageType, 83 ).fields['taskFragment'], 84}; 85