call_stack_profile_encoding.cc 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // Copyright 2018 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 "components/metrics/call_stack_profile_encoding.h"
  5. #include "base/notreached.h"
  6. namespace metrics {
  7. Process ToExecutionContextProcess(CallStackProfileParams::Process process) {
  8. switch (process) {
  9. case CallStackProfileParams::Process::kUnknown:
  10. return UNKNOWN_PROCESS;
  11. case CallStackProfileParams::Process::kBrowser:
  12. return BROWSER_PROCESS;
  13. case CallStackProfileParams::Process::kRenderer:
  14. return RENDERER_PROCESS;
  15. case CallStackProfileParams::Process::kGpu:
  16. return GPU_PROCESS;
  17. case CallStackProfileParams::Process::kUtility:
  18. return UTILITY_PROCESS;
  19. case CallStackProfileParams::Process::kNetworkService:
  20. return NETWORK_SERVICE_PROCESS;
  21. case CallStackProfileParams::Process::kZygote:
  22. return ZYGOTE_PROCESS;
  23. case CallStackProfileParams::Process::kSandboxHelper:
  24. return SANDBOX_HELPER_PROCESS;
  25. case CallStackProfileParams::Process::kPpapiPlugin:
  26. return PPAPI_PLUGIN_PROCESS;
  27. }
  28. NOTREACHED();
  29. return UNKNOWN_PROCESS;
  30. }
  31. Thread ToExecutionContextThread(CallStackProfileParams::Thread thread) {
  32. switch (thread) {
  33. case CallStackProfileParams::Thread::kUnknown:
  34. return UNKNOWN_THREAD;
  35. case CallStackProfileParams::Thread::kMain:
  36. return MAIN_THREAD;
  37. case CallStackProfileParams::Thread::kIo:
  38. return IO_THREAD;
  39. case CallStackProfileParams::Thread::kCompositor:
  40. return COMPOSITOR_THREAD;
  41. case CallStackProfileParams::Thread::kServiceWorker:
  42. return SERVICE_WORKER_THREAD;
  43. }
  44. NOTREACHED();
  45. return UNKNOWN_THREAD;
  46. }
  47. SampledProfile::TriggerEvent ToSampledProfileTriggerEvent(
  48. CallStackProfileParams::Trigger trigger) {
  49. switch (trigger) {
  50. case CallStackProfileParams::Trigger::kUnknown:
  51. return SampledProfile::UNKNOWN_TRIGGER_EVENT;
  52. case CallStackProfileParams::Trigger::kProcessStartup:
  53. return SampledProfile::PROCESS_STARTUP;
  54. case CallStackProfileParams::Trigger::kJankyTask:
  55. return SampledProfile::JANKY_TASK;
  56. case CallStackProfileParams::Trigger::kThreadHung:
  57. return SampledProfile::THREAD_HUNG;
  58. case CallStackProfileParams::Trigger::kPeriodicCollection:
  59. return SampledProfile::PERIODIC_COLLECTION;
  60. case CallStackProfileParams::Trigger::kPeriodicHeapCollection:
  61. return SampledProfile::PERIODIC_HEAP_COLLECTION;
  62. }
  63. NOTREACHED();
  64. return SampledProfile::UNKNOWN_TRIGGER_EVENT;
  65. }
  66. } // namespace metrics