1 // Copyright 2019 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ipc/trace_ipc_message.h" 6 7 #include <stdint.h> 8 9 #include "ipc/ipc_message_macros.h" 10 #include "ipc/ipc_message_start.h" 11 #include "third_party/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pbzero.h" 12 13 namespace IPC { 14 15 using perfetto::protos::pbzero::ChromeLegacyIpc; 16 WriteIpcMessageIdAsProtozero(uint32_t message_id,ChromeLegacyIpc * legacy_ipc)17void WriteIpcMessageIdAsProtozero(uint32_t message_id, 18 ChromeLegacyIpc* legacy_ipc) { 19 ChromeLegacyIpc::MessageClass message_class = 20 ChromeLegacyIpc::CLASS_UNSPECIFIED; 21 switch (IPC_MESSAGE_ID_CLASS(message_id)) { 22 case AutomationMsgStart: 23 message_class = ChromeLegacyIpc::CLASS_AUTOMATION; 24 break; 25 case TestMsgStart: 26 message_class = ChromeLegacyIpc::CLASS_TEST; 27 break; 28 case WorkerMsgStart: 29 message_class = ChromeLegacyIpc::CLASS_WORKER; 30 break; 31 case NaClMsgStart: 32 message_class = ChromeLegacyIpc::CLASS_NACL; 33 break; 34 case PpapiMsgStart: 35 message_class = ChromeLegacyIpc::CLASS_PPAPI; 36 break; 37 case NaClHostMsgStart: 38 message_class = ChromeLegacyIpc::CLASS_NACL_HOST; 39 break; 40 case GinJavaBridgeMsgStart: 41 message_class = ChromeLegacyIpc::CLASS_GIN_JAVA_BRIDGE; 42 break; 43 } 44 legacy_ipc->set_message_class(message_class); 45 legacy_ipc->set_message_line(IPC_MESSAGE_ID_LINE(message_id)); 46 } 47 48 } // namespace IPC 49