73 lines
2.5 KiB
C++
73 lines
2.5 KiB
C++
// Copyright 2018 The Chromium Authors
|
|
// 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
|