chromium/components/heap_profiling/in_process/mojom/snapshot_controller.mojom

// 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);
};