| Index: components/metrics/public/cpp/call_stack_profile_struct_traits.h
|
| diff --git a/components/metrics/public/cpp/call_stack_profile_struct_traits.h b/components/metrics/public/cpp/call_stack_profile_struct_traits.h
|
| index 5e38aa9aa368d81bc53c74d59c163cb9112a2441..6e200341c09c88f752b4ee3b5356b86c11a5401a 100644
|
| --- a/components/metrics/public/cpp/call_stack_profile_struct_traits.h
|
| +++ b/components/metrics/public/cpp/call_stack_profile_struct_traits.h
|
| @@ -134,31 +134,138 @@ struct StructTraits<metrics::mojom::CallStackProfileDataView,
|
| };
|
|
|
| template <>
|
| -struct EnumTraits<metrics::mojom::SampleOrderingSpec,
|
| - metrics::CallStackProfileParams::SampleOrderingSpec> {
|
| +struct EnumTraits<metrics::mojom::Process,
|
| + metrics::CallStackProfileParams::Process> {
|
| + static metrics::mojom::Process ToMojom(
|
| + metrics::CallStackProfileParams::Process process) {
|
| + switch (process) {
|
| + case metrics::CallStackProfileParams::Process::UNKNOWN_PROCESS:
|
| + return metrics::mojom::Process::UNKNOWN_PROCESS;
|
| + case metrics::CallStackProfileParams::Process::BROWSER_PROCESS:
|
| + return metrics::mojom::Process::BROWSER_PROCESS;
|
| + case metrics::CallStackProfileParams::Process::RENDERER_PROCESS:
|
| + return metrics::mojom::Process::RENDERER_PROCESS;
|
| + case metrics::CallStackProfileParams::Process::GPU_PROCESS:
|
| + return metrics::mojom::Process::GPU_PROCESS;
|
| + case metrics::CallStackProfileParams::Process::UTILITY_PROCESS:
|
| + return metrics::mojom::Process::UTILITY_PROCESS;
|
| + case metrics::CallStackProfileParams::Process::ZYGOTE_PROCESS:
|
| + return metrics::mojom::Process::ZYGOTE_PROCESS;
|
| + case metrics::CallStackProfileParams::Process::SANDBOX_HELPER_PROCESS:
|
| + return metrics::mojom::Process::SANDBOX_HELPER_PROCESS;
|
| + case metrics::CallStackProfileParams::Process::PPAPI_PLUGIN_PROCESS:
|
| + return metrics::mojom::Process::PPAPI_PLUGIN_PROCESS;
|
| + case metrics::CallStackProfileParams::Process::PPAPI_BROKER_PROCESS:
|
| + return metrics::mojom::Process::PPAPI_BROKER_PROCESS;
|
| + }
|
| + NOTREACHED();
|
| + return metrics::mojom::Process::UNKNOWN_PROCESS;
|
| + }
|
|
|
| - static metrics::mojom::SampleOrderingSpec ToMojom(
|
| - metrics::CallStackProfileParams::SampleOrderingSpec spec) {
|
| - switch (spec) {
|
| - case metrics::CallStackProfileParams::SampleOrderingSpec::MAY_SHUFFLE:
|
| - return metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE;
|
| - case metrics::CallStackProfileParams::SampleOrderingSpec::PRESERVE_ORDER:
|
| - return metrics::mojom::SampleOrderingSpec::PRESERVE_ORDER;
|
| + static bool FromMojom(metrics::mojom::Process process,
|
| + metrics::CallStackProfileParams::Process* out) {
|
| + switch (process) {
|
| + case metrics::mojom::Process::UNKNOWN_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::UNKNOWN_PROCESS;
|
| + return true;
|
| + case metrics::mojom::Process::BROWSER_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::BROWSER_PROCESS;
|
| + return true;
|
| + case metrics::mojom::Process::RENDERER_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::RENDERER_PROCESS;
|
| + return true;
|
| + case metrics::mojom::Process::GPU_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::GPU_PROCESS;
|
| + return true;
|
| + case metrics::mojom::Process::UTILITY_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::UTILITY_PROCESS;
|
| + return true;
|
| + case metrics::mojom::Process::ZYGOTE_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::ZYGOTE_PROCESS;
|
| + return true;
|
| + case metrics::mojom::Process::SANDBOX_HELPER_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::SANDBOX_HELPER_PROCESS;
|
| + return true;
|
| + case metrics::mojom::Process::PPAPI_PLUGIN_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::PPAPI_PLUGIN_PROCESS;
|
| + return true;
|
| + case metrics::mojom::Process::PPAPI_BROKER_PROCESS:
|
| + *out = metrics::CallStackProfileParams::Process::PPAPI_BROKER_PROCESS;
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +};
|
| +
|
| +template <>
|
| +struct EnumTraits<metrics::mojom::Thread,
|
| + metrics::CallStackProfileParams::Thread> {
|
| + static metrics::mojom::Thread ToMojom(
|
| + metrics::CallStackProfileParams::Thread thread) {
|
| + switch (thread) {
|
| + case metrics::CallStackProfileParams::Thread::UNKNOWN_THREAD:
|
| + return metrics::mojom::Thread::UNKNOWN_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::UI_THREAD:
|
| + return metrics::mojom::Thread::UI_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::FILE_THREAD:
|
| + return metrics::mojom::Thread::FILE_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::FILE_USER_BLOCKING_THREAD:
|
| + return metrics::mojom::Thread::FILE_USER_BLOCKING_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::PROCESS_LAUNCHER_THREAD:
|
| + return metrics::mojom::Thread::PROCESS_LAUNCHER_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::CACHE_THREAD:
|
| + return metrics::mojom::Thread::CACHE_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::IO_THREAD:
|
| + return metrics::mojom::Thread::IO_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::DB_THREAD:
|
| + return metrics::mojom::Thread::DB_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::GPU_MAIN_THREAD:
|
| + return metrics::mojom::Thread::GPU_MAIN_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::RENDER_THREAD:
|
| + return metrics::mojom::Thread::RENDER_THREAD;
|
| + case metrics::CallStackProfileParams::Thread::UTILITY_THREAD:
|
| + return metrics::mojom::Thread::UTILITY_THREAD;
|
| }
|
| NOTREACHED();
|
| - return metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE;
|
| + return metrics::mojom::Thread::UNKNOWN_THREAD;
|
| }
|
|
|
| - static bool FromMojom(
|
| - metrics::mojom::SampleOrderingSpec spec,
|
| - metrics::CallStackProfileParams::SampleOrderingSpec* out) {
|
| - switch (spec) {
|
| - case metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE:
|
| - *out = metrics::CallStackProfileParams::SampleOrderingSpec::MAY_SHUFFLE;
|
| + static bool FromMojom(metrics::mojom::Thread thread,
|
| + metrics::CallStackProfileParams::Thread* out) {
|
| + switch (thread) {
|
| + case metrics::mojom::Thread::UNKNOWN_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::UNKNOWN_THREAD;
|
| return true;
|
| - case metrics::mojom::SampleOrderingSpec::PRESERVE_ORDER:
|
| + case metrics::mojom::Thread::UI_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::UI_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::FILE_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::FILE_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::FILE_USER_BLOCKING_THREAD:
|
| *out =
|
| - metrics::CallStackProfileParams::SampleOrderingSpec::PRESERVE_ORDER;
|
| + metrics::CallStackProfileParams::Thread::FILE_USER_BLOCKING_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::PROCESS_LAUNCHER_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::PROCESS_LAUNCHER_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::CACHE_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::CACHE_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::IO_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::IO_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::DB_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::DB_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::GPU_MAIN_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::GPU_MAIN_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::RENDER_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::RENDER_THREAD;
|
| + return true;
|
| + case metrics::mojom::Thread::UTILITY_THREAD:
|
| + *out = metrics::CallStackProfileParams::Thread::UTILITY_THREAD;
|
| return true;
|
| }
|
| return false;
|
| @@ -207,6 +314,14 @@ struct EnumTraits<metrics::mojom::Trigger,
|
| template <>
|
| struct StructTraits<metrics::mojom::CallStackProfileParamsDataView,
|
| metrics::CallStackProfileParams> {
|
| + static metrics::CallStackProfileParams::Process process(
|
| + const metrics::CallStackProfileParams& params) {
|
| + return params.process;
|
| + }
|
| + static metrics::CallStackProfileParams::Thread thread(
|
| + const metrics::CallStackProfileParams& params) {
|
| + return params.thread;
|
| + }
|
| static metrics::CallStackProfileParams::Trigger trigger(
|
| const metrics::CallStackProfileParams& params) {
|
| return params.trigger;
|
| @@ -218,15 +333,52 @@ struct StructTraits<metrics::mojom::CallStackProfileParamsDataView,
|
|
|
| static bool Read(metrics::mojom::CallStackProfileParamsDataView data,
|
| metrics::CallStackProfileParams* out) {
|
| + metrics::CallStackProfileParams::Process process;
|
| + metrics::CallStackProfileParams::Thread thread;
|
| metrics::CallStackProfileParams::Trigger trigger;
|
| metrics::CallStackProfileParams::SampleOrderingSpec ordering_spec;
|
| - if (!data.ReadTrigger(&trigger) || !data.ReadOrderingSpec(&ordering_spec))
|
| + if (!data.ReadProcess(&process) || !data.ReadThread(&thread) ||
|
| + !data.ReadTrigger(&trigger) || !data.ReadOrderingSpec(&ordering_spec)) {
|
| return false;
|
| - *out = metrics::CallStackProfileParams(trigger, ordering_spec);
|
| + }
|
| + *out = metrics::CallStackProfileParams(process, thread, trigger,
|
| + ordering_spec);
|
| return true;
|
| }
|
| };
|
|
|
| +template <>
|
| +struct EnumTraits<metrics::mojom::SampleOrderingSpec,
|
| + metrics::CallStackProfileParams::SampleOrderingSpec> {
|
| +
|
| + static metrics::mojom::SampleOrderingSpec ToMojom(
|
| + metrics::CallStackProfileParams::SampleOrderingSpec spec) {
|
| + switch (spec) {
|
| + case metrics::CallStackProfileParams::SampleOrderingSpec::MAY_SHUFFLE:
|
| + return metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE;
|
| + case metrics::CallStackProfileParams::SampleOrderingSpec::PRESERVE_ORDER:
|
| + return metrics::mojom::SampleOrderingSpec::PRESERVE_ORDER;
|
| + }
|
| + NOTREACHED();
|
| + return metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE;
|
| + }
|
| +
|
| + static bool FromMojom(
|
| + metrics::mojom::SampleOrderingSpec spec,
|
| + metrics::CallStackProfileParams::SampleOrderingSpec* out) {
|
| + switch (spec) {
|
| + case metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE:
|
| + *out = metrics::CallStackProfileParams::SampleOrderingSpec::MAY_SHUFFLE;
|
| + return true;
|
| + case metrics::mojom::SampleOrderingSpec::PRESERVE_ORDER:
|
| + *out =
|
| + metrics::CallStackProfileParams::SampleOrderingSpec::PRESERVE_ORDER;
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +};
|
| +
|
| } // mojo
|
|
|
| #endif // COMPONENTS_METRICS_CALL_STACK_PROFILE_STRUCT_TRAITS_H_
|
|
|