| // Copyright 2018 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 "components/metrics/call_stack_profile_encoding.h" |
| #include "base/notreached.h" |
| |
| namespace metrics { |
| |
| Process ToExecutionContextProcess(CallStackProfileParams::Process process) { |
| switch (process) { |
| case CallStackProfileParams::Process::kUnknown: |
| return UNKNOWN_PROCESS; |
| case CallStackProfileParams::Process::kBrowser: |
| return BROWSER_PROCESS; |
| case CallStackProfileParams::Process::kRenderer: |
| return RENDERER_PROCESS; |
| case CallStackProfileParams::Process::kGpu: |
| return GPU_PROCESS; |
| case CallStackProfileParams::Process::kUtility: |
| return UTILITY_PROCESS; |
| case CallStackProfileParams::Process::kNetworkService: |
| return NETWORK_SERVICE_PROCESS; |
| case CallStackProfileParams::Process::kZygote: |
| return ZYGOTE_PROCESS; |
| case CallStackProfileParams::Process::kSandboxHelper: |
| return SANDBOX_HELPER_PROCESS; |
| case CallStackProfileParams::Process::kPpapiPlugin: |
| return PPAPI_PLUGIN_PROCESS; |
| } |
| NOTREACHED(); |
| return UNKNOWN_PROCESS; |
| } |
| |
| Thread ToExecutionContextThread(CallStackProfileParams::Thread thread) { |
| switch (thread) { |
| case CallStackProfileParams::Thread::kUnknown: |
| return UNKNOWN_THREAD; |
| case CallStackProfileParams::Thread::kMain: |
| return MAIN_THREAD; |
| case CallStackProfileParams::Thread::kIo: |
| return IO_THREAD; |
| case CallStackProfileParams::Thread::kCompositor: |
| return COMPOSITOR_THREAD; |
| case CallStackProfileParams::Thread::kServiceWorker: |
| return SERVICE_WORKER_THREAD; |
| } |
| NOTREACHED(); |
| return UNKNOWN_THREAD; |
| } |
| |
| SampledProfile::TriggerEvent ToSampledProfileTriggerEvent( |
| CallStackProfileParams::Trigger trigger) { |
| switch (trigger) { |
| case CallStackProfileParams::Trigger::kUnknown: |
| return SampledProfile::UNKNOWN_TRIGGER_EVENT; |
| case CallStackProfileParams::Trigger::kProcessStartup: |
| return SampledProfile::PROCESS_STARTUP; |
| case CallStackProfileParams::Trigger::kJankyTask: |
| return SampledProfile::JANKY_TASK; |
| case CallStackProfileParams::Trigger::kThreadHung: |
| return SampledProfile::THREAD_HUNG; |
| case CallStackProfileParams::Trigger::kPeriodicCollection: |
| return SampledProfile::PERIODIC_COLLECTION; |
| case CallStackProfileParams::Trigger::kPeriodicHeapCollection: |
| return SampledProfile::PERIODIC_HEAP_COLLECTION; |
| } |
| NOTREACHED(); |
| return SampledProfile::UNKNOWN_TRIGGER_EVENT; |
| } |
| |
| } // namespace metrics |