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.
5 #include "ipc/trace_ipc_message.h"
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"
15 using perfetto::protos::pbzero::ChromeLegacyIpc;
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;
26 message_class = ChromeLegacyIpc::CLASS_TEST;
29 message_class = ChromeLegacyIpc::CLASS_WORKER;
32 message_class = ChromeLegacyIpc::CLASS_NACL;
35 message_class = ChromeLegacyIpc::CLASS_PPAPI;
37 case ExtensionMsgStart:
38 message_class = ChromeLegacyIpc::CLASS_EXTENSION;
40 case NaClHostMsgStart:
41 message_class = ChromeLegacyIpc::CLASS_NACL_HOST;
43 case GinJavaBridgeMsgStart:
44 message_class = ChromeLegacyIpc::CLASS_GIN_JAVA_BRIDGE;
46 case ExtensionWorkerMsgStart:
47 message_class = ChromeLegacyIpc::CLASS_EXTENSION_WORKER;
50 legacy_ipc->set_message_class(message_class);
51 legacy_ipc->set_message_line(IPC_MESSAGE_ID_LINE(message_id));