trace_ipc_message.cc 1.9 KB

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