blob: bb894c4b3e0a49fe46681b046c83ec7b733a9ad8 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.feedback;
using fuchsia.sys;
/// Allows a component to choose a different crash reporting product to file crashes for that
/// component under.
///
/// By default, all crashes detected by the platform are filed under a single product on the crash
/// server. This API allows components to choose their own product while still benefiting from the
/// platform's exception handling and crash reporting.
[Discoverable]
protocol CrashReportingProductRegister {
/// Upserts, i.e. updates or inserts, a crash reporting product for a given component URL.
///
/// Upsert() may be called multiple times for the same `component_url`, e.g., once for each
/// launch of the component, in which case only the most recent call's product information
/// will be used in crash reports.
Upsert(fuchsia.sys.component_url component_url, CrashReportingProduct product);
};
/// Product release information to report to the crash server.
table CrashReportingProduct {
/// The product name on the crash server.
/// * Missing this required field will result in a ZX_ERR_INVALID_ARGS epitaph.
1: string:MAX name;
/// Optional product version of the component.
///
/// If no version is specified then none is reported to the crash server.
2: string:MAX version;
/// Optional product release channel for the component, e.g., "canary", "beta", "stable".
///
/// If no channel is specified then none is reported to the crash server.
3: string:MAX channel;
};