OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 module metrics.mojom; |
| 6 |
| 7 import "mojo/common/common_custom_types.mojom"; |
| 8 |
| 9 // These structs mirror the corresponding types in base::StackSamplingProfiler. |
| 10 |
| 11 struct CallStackModule { |
| 12 uint64 base_address; |
| 13 string id; |
| 14 mojo.common.mojom.FilePath filename; |
| 15 }; |
| 16 |
| 17 struct CallStackFrame { |
| 18 uint64 instruction_pointer; |
| 19 uint64 module_index; |
| 20 }; |
| 21 |
| 22 struct CallStackProfile { |
| 23 array<CallStackModule> modules; |
| 24 array<array<CallStackFrame>> samples; |
| 25 mojo.common.mojom.TimeDelta profile_duration; |
| 26 mojo.common.mojom.TimeDelta sampling_period; |
| 27 }; |
| 28 |
| 29 enum Trigger { |
| 30 UNKNOWN, |
| 31 PROCESS_STARTUP, |
| 32 JANKY_TASK, |
| 33 THREAD_HUNG, |
| 34 }; |
| 35 |
| 36 interface CallStackProfileCollector { |
| 37 Collect(Trigger trigger, bool preserve_sample_ordering, |
| 38 mojo.common.mojom.TimeTicks start_timestamp, |
| 39 array<CallStackProfile> profiles); |
| 40 }; |
OLD | NEW |