1
0
Fork 0
firefox/toolkit/components/telemetry/dap/nsIDAPTelemetry.idl
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

48 lines
2.4 KiB
Text

/* 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 Leader encryption configuration.
* @param helperHpkeConfig Helper encryption configuration.
* @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 [bits] Bitwidth of integers that the VDAF consumes.
* size of vector in the case of histograms.
* @param [length] Number of bins in the case of histograms.
* @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 GetReportPrioSum(in Array<uint8_t> leaderHpkeConfig,
in Array<uint8_t> helperHpkeConfig,
in uint32_t measurement,
in Array<uint8_t> task_id,
in uint32_t bits,
in uint64_t time_precision,
out Array<uint8_t> report);
void GetReportPrioSumVec(in Array<uint8_t> leaderHpkeConfig,
in Array<uint8_t> helperHpkeConfig,
in Array<uint32_t> measurement,
in Array<uint8_t> task_id,
in uint32_t bits,
in uint64_t time_precision,
out Array<uint8_t> report);
void GetReportPrioHistogram(in Array<uint8_t> leaderHpkeConfig,
in Array<uint8_t> helperHpkeConfig,
in uint32_t measurement,
in Array<uint8_t> task_id,
in uint32_t length,
in uint64_t time_precision,
out Array<uint8_t> report);
};