Index: components/metrics/leak_detector/leak_detector.mojom |
diff --git a/components/metrics/leak_detector/leak_detector.mojom b/components/metrics/leak_detector/leak_detector.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d985b79024cc42b0c44a147bbed6aedcf2801cfb |
--- /dev/null |
+++ b/components/metrics/leak_detector/leak_detector.mojom |
@@ -0,0 +1,40 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+module metrics.mojom; |
+ |
+struct LeakDetectorParams { |
+ float sampling_rate; |
+ uint32 max_stack_depth; |
+ uint64 analysis_interval_bytes; |
+ uint32 size_suspicion_threshold; |
+ uint32 call_stack_suspicion_threshold; |
+}; |
+ |
+struct AllocationBreakdown { |
+ array<uint32> counts_by_size; |
+ uint32 count_for_call_stack; |
+}; |
+ |
+struct MemoryLeakReport { |
+ uint32 size_bytes; |
+ array<uint64> call_stack; |
+ |
+ array<AllocationBreakdown> alloc_breakdown_history; |
+}; |
+ |
+// Provides a remote interface for enabling LeakDetector on remote processes. |
+interface LeakDetector { |
+ // Returns a LeakDetectorParams struct. Used to indicate to the remote process |
+ // what parameters to use when initializing LeakDetector. Can also return |
+ // |params.sampling_rate| == 0 to indicate that LeakDetector should not be |
+ // initialized on a particular process. |
+ GetParams() => (LeakDetectorParams params); |
+ |
+ // When a remote process running LeakDetector gets some leak reports, it |
+ // should call this function to return the leak reports back to the main |
+ // process that implements this function. The reports should be sent back as |
+ // an array of serialized MemoryLeakReportProtos. |
+ SendLeakReports(array<MemoryLeakReport> reports); |
+}; |