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, |