| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module heap_profiling.mojom; |
| |
| // Lets HeapProfilerController in the browser process schedule heap snapshots |
| // in child processes. The snapshot data will be passed back to the browser |
| // process using metrics::ChildCallStackProfileCollector, for inclusion in the |
| // next metrics upload via CallStackProfileMetricsProvider. |
| interface SnapshotController { |
| // Triggers a heap snapshot. |
| // |
| // `process_probability_pct` is the percent chance that a process of this |
| // type was chosen to include in the snapshot, and can be used to scale the |
| // samples in the snapshot to represent its portion of the whole population. |
| // |
| // `process_index` is the 0-based index of this process in the list of |
| // processes of the same type that were snapshotted at the same time. |
| TakeSnapshot(uint32 process_probability_pct, uint32 process_index); |
| }; |