WebExtension API for Telemetry
Use the browser.telemetry
API to send telemetry data to the Mozilla Telemetry service. Restricted to Mozilla privileged webextensions.
Types
ScalarType
Type of scalar: ‘count’ for numeric values, ‘string’ for string values, ‘boolean’ for boolean values. Maps to nsITelemetry.SCALAR_TYPE_*
.
ScalarData
Represents registration data for a Telemetry scalar.
Properties:
kind
- See ScalarType.keyed
- (optional, boolean) True if this is a keyed scalar. Defaults tofalse
.record_on_release
- (optional, boolean) True if this data should be recorded on release. Defaults tofalse
.expired
- (optional, boolean) True if this scalar entry is expired. Operations on an expired scalar don’t error (operations on an undefined scalar do), but the operations are no-ops. No data will be recorded. Defaults tofalse
.
EventData
Represents registration data for a Telemetry event.
Properties:
methods
- (array) List of methods for this event entry.objects
- (array) List of objects for this event entry.extra_keys
- (array) List of allowed extra keys for this event entry.record_on_release
- (optional, boolean) True if this data should be recorded on release. Defaults tofalse
.expired
- (optional, boolean) True if this event entry is expired. Recording an expired event doesn’t error (operations on undefined events do). No data will be recorded. Defaults tofalse
.
Functions
submitPing
browser.telemetry.submitPing(type, message, options);
Submits a custom ping to the Telemetry backend. See Submitting custom pings.
type
- (string) The type of the ping.message
- (object) The data payload for the ping.options
- (optional, object) Options object.addClientId
- (optional, boolean) True if the ping should contain the client id and profile group id. Defaults tofalse
.addEnvironment
- (optional, boolean) True if the ping should contain the environment data. Defaults tofalse
.overrideEnvironment
- (optional, object) Set to override the environment data. Default: not set.usePingSender
- (optional, boolean) If true, send the ping using the PingSender. Defaults tofalse
.
canUpload
browser.telemetry.canUpload();
Checks if Telemetry upload is enabled.
scalarAdd
browser.telemetry.scalarAdd(name, value);
As of Firefox 134, this method is a no-op. See Bug 1930196.
Instead, use Glean APIs to record scalars.
scalarSet
browser.telemetry.scalarSet(name, value);
As of Firefox 134, this method is a no-op. See Bug 1930196.
Instead, use Glean APIs to record scalars.
scalarSetMaximum
browser.telemetry.scalarSetMaximum(name, value);
As of Firefox 134, this method is a no-op. See Bug 1930196.
Instead, use Glean APIs to record scalars.
recordEvent
As of Firefox 132, this method is a no-op. See Bug 1894533.
Instead, use Glean APIs to record events.
registerScalars
browser.telemetry.registerScalars(category, data);
As of Firefox 134, this method is a no-op. See Bug 1930196.
Instead, use Glean APIs to record scalars.
registerEvents
As of Firefox 132, this method is a no-op. See Bug 1894533.
Instead, use Glean event definitions for your extension’s events.
setEventRecordingEnabled
As of Firefox 133, this method is a no-op. Event recording is enabled by default unconditionally. See Bug 1920562.
Instead, use Glean event definitions for your extension’s events.