// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ipc/trace_ipc_message.h" #include #include "ipc/ipc_message_macros.h" #include "ipc/ipc_message_start.h" #include "third_party/perfetto/protos/perfetto/trace/track_event/chrome_legacy_ipc.pbzero.h" namespace IPC { using perfetto::protos::pbzero::ChromeLegacyIpc; void WriteIpcMessageIdAsProtozero(uint32_t message_id, ChromeLegacyIpc* legacy_ipc) { ChromeLegacyIpc::MessageClass message_class = ChromeLegacyIpc::CLASS_UNSPECIFIED; switch (IPC_MESSAGE_ID_CLASS(message_id)) { case AutomationMsgStart: message_class = ChromeLegacyIpc::CLASS_AUTOMATION; break; case TestMsgStart: message_class = ChromeLegacyIpc::CLASS_TEST; break; case WorkerMsgStart: message_class = ChromeLegacyIpc::CLASS_WORKER; break; case NaClMsgStart: message_class = ChromeLegacyIpc::CLASS_NACL; break; case PpapiMsgStart: message_class = ChromeLegacyIpc::CLASS_PPAPI; break; case ExtensionMsgStart: message_class = ChromeLegacyIpc::CLASS_EXTENSION; break; case ChromotingMsgStart: message_class = ChromeLegacyIpc::CLASS_CHROMOTING; break; case NaClHostMsgStart: message_class = ChromeLegacyIpc::CLASS_NACL_HOST; break; case EncryptedMediaMsgStart: message_class = ChromeLegacyIpc::CLASS_ENCRYPTED_MEDIA; break; case GinJavaBridgeMsgStart: message_class = ChromeLegacyIpc::CLASS_GIN_JAVA_BRIDGE; break; case ExtensionWorkerMsgStart: message_class = ChromeLegacyIpc::CLASS_EXTENSION_WORKER; break; } legacy_ipc->set_message_class(message_class); legacy_ipc->set_message_line(IPC_MESSAGE_ID_LINE(message_id)); } } // namespace IPC