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