| Index: components/metrics/call_stack_profile_metrics_provider.cc
|
| diff --git a/components/metrics/call_stack_profile_metrics_provider.cc b/components/metrics/call_stack_profile_metrics_provider.cc
|
| index 1d228153b2ce551ff20f76655e6a5fd9166d018c..3dc55b9ea6d00f0a571cd4bcbb528867f03f6a9f 100644
|
| --- a/components/metrics/call_stack_profile_metrics_provider.cc
|
| +++ b/components/metrics/call_stack_profile_metrics_provider.cc
|
| @@ -289,6 +289,64 @@ void CopyProfileToProto(
|
| profile.sampling_period.InMilliseconds());
|
| }
|
|
|
| +// Translates CallStackProfileParams's process to the corresponding
|
| +// execution context Process.
|
| +Process ToExecutionContextProcess(CallStackProfileParams::Process process) {
|
| + switch (process) {
|
| + case CallStackProfileParams::UNKNOWN_PROCESS:
|
| + return UNKNOWN_PROCESS;
|
| + case CallStackProfileParams::BROWSER_PROCESS:
|
| + return BROWSER_PROCESS;
|
| + case CallStackProfileParams::RENDERER_PROCESS:
|
| + return RENDERER_PROCESS;
|
| + case CallStackProfileParams::GPU_PROCESS:
|
| + return GPU_PROCESS;
|
| + case CallStackProfileParams::UTILITY_PROCESS:
|
| + return UTILITY_PROCESS;
|
| + case CallStackProfileParams::ZYGOTE_PROCESS:
|
| + return ZYGOTE_PROCESS;
|
| + case CallStackProfileParams::SANDBOX_HELPER_PROCESS:
|
| + return SANDBOX_HELPER_PROCESS;
|
| + case CallStackProfileParams::PPAPI_PLUGIN_PROCESS:
|
| + return PPAPI_PLUGIN_PROCESS;
|
| + case CallStackProfileParams::PPAPI_BROKER_PROCESS:
|
| + return PPAPI_BROKER_PROCESS;
|
| + }
|
| + NOTREACHED();
|
| + return UNKNOWN_PROCESS;
|
| +}
|
| +
|
| +// Translates CallStackProfileParams's thread to the corresponding
|
| +// SampledProfile TriggerEvent.
|
| +Thread ToExecutionContextThread(CallStackProfileParams::Thread thread) {
|
| + switch (thread) {
|
| + case CallStackProfileParams::UNKNOWN_THREAD:
|
| + return UNKNOWN_THREAD;
|
| + case CallStackProfileParams::UI_THREAD:
|
| + return UI_THREAD;
|
| + case CallStackProfileParams::FILE_THREAD:
|
| + return FILE_THREAD;
|
| + case CallStackProfileParams::FILE_USER_BLOCKING_THREAD:
|
| + return FILE_USER_BLOCKING_THREAD;
|
| + case CallStackProfileParams::PROCESS_LAUNCHER_THREAD:
|
| + return PROCESS_LAUNCHER_THREAD;
|
| + case CallStackProfileParams::CACHE_THREAD:
|
| + return CACHE_THREAD;
|
| + case CallStackProfileParams::IO_THREAD:
|
| + return IO_THREAD;
|
| + case CallStackProfileParams::DB_THREAD:
|
| + return DB_THREAD;
|
| + case CallStackProfileParams::GPU_MAIN_THREAD:
|
| + return GPU_MAIN_THREAD;
|
| + case CallStackProfileParams::RENDER_THREAD:
|
| + return RENDER_THREAD;
|
| + case CallStackProfileParams::UTILITY_THREAD:
|
| + return UTILITY_THREAD;
|
| + }
|
| + NOTREACHED();
|
| + return UNKNOWN_THREAD;
|
| +}
|
| +
|
| // Translates CallStackProfileParams's trigger to the corresponding
|
| // SampledProfile TriggerEvent.
|
| SampledProfile::TriggerEvent ToSampledProfileTriggerEvent(
|
| @@ -296,16 +354,12 @@ SampledProfile::TriggerEvent ToSampledProfileTriggerEvent(
|
| switch (trigger) {
|
| case CallStackProfileParams::UNKNOWN:
|
| return SampledProfile::UNKNOWN_TRIGGER_EVENT;
|
| - break;
|
| case CallStackProfileParams::PROCESS_STARTUP:
|
| return SampledProfile::PROCESS_STARTUP;
|
| - break;
|
| case CallStackProfileParams::JANKY_TASK:
|
| return SampledProfile::JANKY_TASK;
|
| - break;
|
| case CallStackProfileParams::THREAD_HUNG:
|
| return SampledProfile::THREAD_HUNG;
|
| - break;
|
| }
|
| NOTREACHED();
|
| return SampledProfile::UNKNOWN_TRIGGER_EVENT;
|
| @@ -367,6 +421,10 @@ void CallStackProfileMetricsProvider::ProvideGeneralMetrics(
|
| for (const StackSamplingProfiler::CallStackProfile& profile :
|
| profiles_state.profiles) {
|
| SampledProfile* sampled_profile = uma_proto->add_sampled_profile();
|
| + sampled_profile->set_process(ToExecutionContextProcess(
|
| + profiles_state.params.process));
|
| + sampled_profile->set_thread(ToExecutionContextThread(
|
| + profiles_state.params.thread));
|
| sampled_profile->set_trigger_event(ToSampledProfileTriggerEvent(
|
| profiles_state.params.trigger));
|
| CopyProfileToProto(profile, profiles_state.params.ordering_spec,
|
|
|