Name Description Size Coverage
ClientID.sys.mjs Checks if the string is a valid UUID (without braces). @param {string} id A string containing an ID. @return {boolean} True when the ID has valid format, or False otherwise. 31451 99 %
TelemetryArchive.sys.mjs Get a list of the archived pings, sorted by the creation date. Note that scanning the archived pings on disk is delayed on startup, use promizeInitialized() to access this after scanning. @return {Promise<sequence<object>>} A list of the archived ping info in the form: { id: <string>, timestampCreated: <number>, type: <string> } 3452 94 %
TelemetryController.sys.mjs This module chooses the correct telemetry controller module to load based on the process: - TelemetryControllerParent is loaded only in the parent process, and contains code specific to the parent. - TelemetryControllerContent is loaded only in content processes, and contains code specific to them. Both the parent and the content modules load TelemetryControllerBase, which contains code which is common to all processes. This division is important for content process memory usage and startup time. The parent-specific code occupies tens of KB of memory which, multiplied by the number of content processes we have, adds up fast. 1598 100 %
TelemetryControllerBase.sys.mjs Setup Telemetry logging. This function also gets called when loggin related preferences change. 4661 85 %
TelemetryControllerContent.sys.mjs Used only for testing purposes. 2483 86 %
TelemetryControllerParent.sys.mjs This is a policy object used to override behavior for testing. 51363 90 %
TelemetryEnvironment.sys.mjs This is a policy object used to override behavior for testing. 65990 91 %
TelemetryReportingPolicy.sys.mjs This is a policy object used to override behavior within this module. Tests override properties on this object to allow for control of behavior that would otherwise be very hard to cover. 45403 89 %
TelemetryScheduler.sys.mjs This is a policy object used to override behavior for testing. 14260 92 %
TelemetrySend.sys.mjs This module is responsible for uploading pings to the server and persisting pings that can't be send now. Those pending pings are persisted on disk and sent at the next opportunity, newest first. 54083 95 %
TelemetryStorage.sys.mjs This is thrown by |TelemetryStorage.loadPingFile| when reading the ping from the disk fails. 67263 88 %
TelemetryTimestamps.sys.mjs This module's purpose is to collect timestamps for important application-specific events. The TelemetryController component attaches the timestamps stored by this module to the telemetry submission, substracting the process lifetime so that the times are relative to process startup. The overall goal is to produce a basic timeline of the startup process. 1760 100 %
TelemetryUtils.sys.mjs When telemetry is disabled, identifying information (such as client ID) should be removed. A topic event is emitted with a subject that matches this constant. When this happens, other systems that store identifying information about the client should delete that data. Please ask the Firefox Telemetry Team before relying on this topic. Here is an example of listening for that event: const { TelemetryUtils } = ChromeUtils.importESModule("resource://gre/modules/TelemetryUtils.sys.mjs"); class YourClass { constructor() { Services.obs.addObserver(this, TelemetryUtils.TELEMETRY_UPLOAD_DISABLED_TOPIC); } observe(subject, topic, data) { if (topic == TelemetryUtils.TELEMETRY_UPLOAD_DISABLED_TOPIC) { // Telemetry was disabled // subject and data are both unused } } } 9516 99 %
UsageReporting.sys.mjs Return a promise resolving when this module is initialized. 7013 91 %