xref: /aosp_15_r20/external/cronet/ipc/trace_ipc_message.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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)17 void 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