Name Description Size
ActionsManager.sys.mjs A class to manage the actions that recipes can use in Normandy. 3570
AddonRollouts.sys.mjs AddonRollouts store info about an active or expired addon rollouts. @typedef {object} AddonRollout @property {int} recipeId The ID of the recipe. @property {string} slug Unique slug of the rollout. @property {string} state The current state of the rollout: "active", or "rolled-back". Active means that Normandy is actively managing therollout. Rolled-back means that the rollout was previously active, but has been rolled back for this user. @property {int} extensionApiId The ID used to look up the extension in Normandy's API. @property {string} addonId The add-on ID for this particular rollout. @property {string} addonVersion The rollout add-on version number @property {string} xpiUrl URL that the add-on was installed from. @property {string} xpiHash The hash of the XPI file. @property {string} xpiHashAlgorithm The algorithm used to hash the XPI file. 6289
AddonStudies.sys.mjs @typedef {Object} Study @property {Number} recipeId ID of the recipe that created the study. Used as the primary key of the study. @property {Number} slug String code used to identify the study for use in Telemetry and logging. @property {string} userFacingName Name of the study to show to the user @property {string} userFacingDescription Description of the study and its intent. @property {string} branch The branch the user is enrolled in @property {boolean} active Is the study still running? @property {string} addonId Add-on ID for this particular study. @property {string} addonUrl URL that the study add-on was installed from. @property {string} addonVersion Study add-on version number @property {int} extensionApiId The ID used to look up the extension in Normandy's API. @property {string} extensionHash The hash of the XPI file. @property {string} extensionHashAlgorithm The algorithm used to hash the XPI file. @property {Date} studyStartDate Date when the study was started. @property {Date|null} studyEndDate Date when the study was ended. @property {Date|null} temporaryErrorDeadline Date of when temporary errors with this experiment should no longer be considered temporary. After this point, further errors will result in unenrollment. 14769
CleanupManager.sys.mjs 1207
ClientEnvironment.sys.mjs Fetches information about the client that is calculated on the server, like geolocation and the current time. The server request is made lazily and is cached for the entire browser session. 3589
EventEmitter.sys.mjs 1692
Heartbeat.sys.mjs Show the Heartbeat UI to request user feedback. @param chromeWindow The chrome window that the heartbeat notification is displayed in. @param {Object} options Options object. @param {String} options.message The message, or question, to display on the notification. @param {String} options.thanksMessage The thank you message to display after user votes. @param {String} options.flowId An identifier for this rating flow. Please note that this is only used to identify the notification box. @param {String} [options.engagementButtonLabel=null] The text of the engagement button to use instead of stars. If this is null or invalid, rating stars are used. @param {String} [options.learnMoreMessage=null] The label of the learn more link. No link will be shown if this is null. @param {String} [options.learnMoreUrl=null] The learn more URL to open when clicking on the learn more link. No learn more will be shown if this is an invalid URL. @param {String} [options.surveyId] An ID for the survey, reflected in the Telemetry ping. @param {Number} [options.surveyVersion] Survey's version number, reflected in the Telemetry ping. @param {boolean} [options.testing] Whether this is a test survey, reflected in the Telemetry ping. @param {String} [options.postAnswerURL=null] The url to visit after the user answers the question. 12650
LegacyHeartbeat.sys.mjs A bridge between Nimbus and Normandy's Heartbeat implementation. 1443
LogManager.sys.mjs Configure the root logger for the Recipe Client. Must be called at least once before using any loggers created via getLogger. @param {Number} loggingLevel Logging level to use as defined in Log.sys.mjs 1111
NormandyAddonManager.sys.mjs 2902
NormandyApi.sys.mjs Verify content signature, by serializing the specified `object` as canonical JSON, and using the Normandy signer verifier to check that it matches the signature specified in `signaturePayload`. If the the signature is not valid, an error is thrown. Otherwise this function returns undefined. @param {object|String} data The object (or string) to be checked @param {object} signaturePayload The signature information @param {String} signaturePayload.x5u The certificate chain URL @param {String} signaturePayload.signature base64 signature bytes @param {String} type The object type (eg. `"recipe"`, `"action"`) @returns {Promise<undefined>} If the signature is valid, this function returns without error @throws {NormandyApi.InvalidSignatureError} if signature is invalid. 5051
NormandyUtils.sys.mjs 417
PreferenceExperiments.sys.mjs Preference Experiments temporarily change a preference to one of several test values for the duration of the experiment. Telemetry packets are annotated to show what experiments are active, and we use this data to measure the effectiveness of the preference change. Info on active and past experiments is stored in a JSON file in the profile folder. Active preference experiments are stopped if they aren't active on the recipe server. They also expire if Firefox isn't able to contact the recipe server after a period of time, as well as if the user modifies the preference during an active experiment. 35118
PreferenceRollouts.sys.mjs PreferenceRollouts store info about an active or expired preference rollout. @typedef {object} PreferenceRollout @property {string} slug Unique slug of the experiment @property {string} state The current state of the rollout: "active", "rolled-back", "graduated". Active means that Normandy is actively managing therollout. Rolled-back means that the rollout was previously active, but has been rolled back for this user. Graduated means that the built-in default now matches the rollout value, and so Normandy is no longer managing the preference. @property {Array<PreferenceSpec>} preferences An array of preferences specifications involved in the rollout. 11208
PrefUtils.sys.mjs Get a preference of any type from the named branch. @param {string} pref @param {object} [options] @param {"default"|"user"} [options.branchName="user"] One of "default" or "user" @param {string|boolean|integer|null} [options.defaultValue] The value to return if the preference does not exist. Defaults to null. 4068
RecipeRunner.sys.mjs cacheProxy returns an object Proxy that will memoize properties of the target. 21827
ShieldPreferences.sys.mjs Handles Shield-specific preferences, including their UI. 2578
Storage.sys.mjs Clear ALL storage data and save to the disk. 2278
TelemetryEvents.sys.mjs 732
Uptake.sys.mjs 2413