Chromium Code Reviews| 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..82e9b81f450e8c3ece4fb39100a9fdc79e673082 100644 |
| --- a/components/metrics/call_stack_profile_metrics_provider.cc |
| +++ b/components/metrics/call_stack_profile_metrics_provider.cc |
| @@ -289,6 +289,84 @@ 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; |
| + break; |
|
sky
2016/09/21 22:06:16
No break after returns in these switches.
Mike Wittman
2016/09/21 22:26:21
Done.
|
| + case CallStackProfileParams::BROWSER_PROCESS: |
| + return BROWSER_PROCESS; |
| + break; |
| + case CallStackProfileParams::RENDERER_PROCESS: |
| + return RENDERER_PROCESS; |
| + break; |
| + case CallStackProfileParams::GPU_PROCESS: |
| + return GPU_PROCESS; |
| + break; |
| + case CallStackProfileParams::UTILITY_PROCESS: |
| + return UTILITY_PROCESS; |
| + break; |
| + case CallStackProfileParams::ZYGOTE_PROCESS: |
| + return ZYGOTE_PROCESS; |
| + break; |
| + case CallStackProfileParams::SANDBOX_HELPER_PROCESS: |
| + return SANDBOX_HELPER_PROCESS; |
| + break; |
| + case CallStackProfileParams::PPAPI_PLUGIN_PROCESS: |
| + return PPAPI_PLUGIN_PROCESS; |
| + break; |
| + case CallStackProfileParams::PPAPI_BROKER_PROCESS: |
| + return PPAPI_BROKER_PROCESS; |
| + break; |
| + } |
| + 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; |
| + break; |
| + case CallStackProfileParams::UI_THREAD: |
| + return UI_THREAD; |
| + break; |
| + case CallStackProfileParams::FILE_THREAD: |
| + return FILE_THREAD; |
| + break; |
| + case CallStackProfileParams::FILE_USER_BLOCKING_THREAD: |
| + return FILE_USER_BLOCKING_THREAD; |
| + break; |
| + case CallStackProfileParams::PROCESS_LAUNCHER_THREAD: |
| + return PROCESS_LAUNCHER_THREAD; |
| + break; |
| + case CallStackProfileParams::CACHE_THREAD: |
| + return CACHE_THREAD; |
| + break; |
| + case CallStackProfileParams::IO_THREAD: |
| + return IO_THREAD; |
| + break; |
| + case CallStackProfileParams::DB_THREAD: |
| + return DB_THREAD; |
| + break; |
| + case CallStackProfileParams::GPU_MAIN_THREAD: |
| + return GPU_MAIN_THREAD; |
| + break; |
| + case CallStackProfileParams::RENDER_THREAD: |
| + return RENDER_THREAD; |
| + break; |
| + case CallStackProfileParams::UTILITY_THREAD: |
| + return UTILITY_THREAD; |
| + break; |
| + } |
| + NOTREACHED(); |
| + return UNKNOWN_THREAD; |
| +} |
| + |
| // Translates CallStackProfileParams's trigger to the corresponding |
| // SampledProfile TriggerEvent. |
| SampledProfile::TriggerEvent ToSampledProfileTriggerEvent( |
| @@ -367,6 +445,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, |