blob: 66deb562faeaf5868d67ad50c13b41afc491c549 [file] [log] [blame]
// Copyright 2020 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 tracing.mojom;
import "mojo/public/mojom/base/file.mojom";
// Mojo interface between a child and the browser process. It's used to open the
// socket connection to the Perfetto system tracing service daemon (traced) from
// within a sandboxed child process. This enables system-wide trace collection
// that includes trace data from all Chrome processes.
interface SystemTracingService {
// For the browser process to provide the producer socket to a child process,
// where opening a socket is prohibited by the sandbox. The producer socket is
// used to inject data into the trace but doesn't not allow starting/stopping
// tracing or reading back the trace data. See
// https://perfetto.dev/docs/concepts/service-model.
OpenProducerSocket() => (mojo_base.mojom.File? traced_socket);
};