diff options
Diffstat (limited to 'toolkit/components/telemetry/dap/nsIDAPTelemetry.idl')
-rw-r--r-- | toolkit/components/telemetry/dap/nsIDAPTelemetry.idl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/toolkit/components/telemetry/dap/nsIDAPTelemetry.idl b/toolkit/components/telemetry/dap/nsIDAPTelemetry.idl new file mode 100644 index 0000000000..80e54dbf12 --- /dev/null +++ b/toolkit/components/telemetry/dap/nsIDAPTelemetry.idl @@ -0,0 +1,33 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +[scriptable, builtinclass, uuid(58a4c579-d2dd-46b7-9c3b-6881a1c36c6a)] +interface nsIDAPTelemetry : nsISupports { + /** + * Split measurement into shares and create a report with encrypted shares. + * + * @param leaderHpkeConfig The leader share will be encrypted with this + * config. + * @param helperHpkeConfig Same for the helper. + * @param measurement The data which will be encoded and shared. + * @param task_id Identifies which task this measurement is for + * which influences both encoding and encryption. + * @param time_precision Determines the report timestamp. + * + * @return The raw bytes of a report, ready for sending. + * + * @note This can potentially run for a long time. Take care not to block + * the main thread for too long. + */ + void GetReportU8(in Array<uint8_t> leaderHpkeConfig, + in Array<uint8_t> helperHpkeConfig, in uint8_t measurement, + in Array<uint8_t> task_id, in uint64_t time_precision, + out Array<uint8_t> report); + void GetReportVecU16(in Array<uint8_t> leaderHpkeConfig, + in Array<uint8_t> helperHpkeConfig, + in Array<uint16_t> measurement, in Array<uint8_t> task_id, + in uint64_t time_precision, out Array<uint8_t> report); +}; |