Name Description Size
Addon.sys.mjs Installs addons by path and uninstalls by ID. 7390
AppInfo.sys.mjs Extends Services.appinfo with further properties that are used by different protocols as handled by the Remote Agent. @typedef {object} RemoteAgent.AppInfo @property {boolean} isAndroid - Whether the application runs on Android. @property {boolean} isLinux - Whether the application runs on Linux. @property {boolean} isMac - Whether the application runs on Mac OS. @property {boolean} isWindows - Whether the application runs on Windows. @property {boolean} isFirefox - Whether the application is Firefox. @property {boolean} isThunderbird - Whether the application is Thunderbird. @since 88 2151
AsyncQueue.sys.mjs Manages a queue of asynchronous tasks, ensuring they are processed sequentially. 1866
Browser.sys.mjs Quits the application with the provided flags. Optional {@link nsIAppStartup} flags may be provided as an array of masks, and these will be combined by ORing them with a bitmask. The available masks are defined in https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAppStartup. Crucially, only one of the *Quit flags can be specified. The |eRestart| flag may be bit-wise combined with one of the *Quit flags to cause the application to restart after it quits. @param {Array.<string>=} flags Constant name of masks to pass to |Services.startup.quit|. If empty or undefined, |nsIAppStartup.eAttemptQuit| is used. @param {boolean=} safeMode Optional flag to indicate that the application has to be restarted in safe mode. @param {boolean=} isWindowless Optional flag to indicate that the browser was started in windowless mode. @returns {Record<string, boolean>} Dictionary containing information that explains the shutdown reason. The value for `cause` contains the shutdown kind like "shutdown" or "restart", while `forced` will indicate if it was a normal or forced shutdown of the application. "in_app" is always set to indicate that it is a shutdown triggered from within the application. 3436
Capture.sys.mjs Provides primitives to capture screenshots. @namespace 6231
ChallengeHeaderParser.sys.mjs Parse the parameter in a name/value pair and remove quotes. @param {string} paramValue A string representing a challenge parameter. @returns {object} An object with name and value string properties. 2224
DOM.sys.mjs XUL elements that support checked property. 33408
Format.sys.mjs Pretty-print values passed to template strings. Usage:: let bool = {value: true}; pprint`Expected boolean, got ${bool}`; => 'Expected boolean, got [object Object] {"value": true}' let htmlElement = document.querySelector("input#foo"); pprint`Expected element ${htmlElement}`; => 'Expected element <input id="foo" class="bar baz" type="input">' pprint`Current window: ${window}`; => '[object Window https://www.mozilla.org/]' 4957
js-process-actors
listeners
Log.sys.mjs E10s compatible wrapper for the standard logger from Log.sys.mjs. 2858
messagehandler
MobileTabBrowser.sys.mjs Create a new tab. @param {string} uriString The URI string to load within the newly opened tab. @returns {Promise<Tab>} The created tab. @throws {Error} Throws an error if the tab cannot be created. 2077
moz.build 797
NavigableManager.sys.mjs The navigable manager is intended to be used as a singleton and is responsible for tracking open browsing contexts by assigning each a unique identifier. This allows them to be referenced unambiguously. For top-level browsing contexts, the content browser instance itself is used as the anchor, since cross-origin navigations can result in browsing context replacements. Using the browser as a stable reference ensures that protocols like WebDriver BiDi and Marionette can reliably point to the intended "navigable" — a concept from the HTML specification that is not implemented in Firefox. 8450
Navigate.sys.mjs Returns the multiplier used for the unload timer. Useful for tests which assert the behavior of this timeout. 18509
NavigationManager.sys.mjs @typedef {object} BrowsingContextDetails @property {string} browsingContextId - The browsing context id. @property {string} browserId - The id of the Browser owning the browsing context. @property {BrowsingContext=} context - The BrowsingContext itself, if available. @property {boolean} isTopBrowsingContext - Whether the browsing context is top level. 33614
NetworkCacheManager.sys.mjs Enum of possible network cache behaviors. @readonly @enum {CacheBehavior} 4811
NetworkDecodedBodySizeMap.sys.mjs This map will return the default value of 0 if the decoded body size for a given channel was not received yet. Bug 1959614: The NetworkDecodedBodySizeMap used to setup promises to wait for the decoded body size to be ready. However the timing differences from this change leads to regressions in Playwright tests. The new implementation of the map is only synchronous and if the size was not received yet, 0 will be returned. In theory, the decoded body size should be set via http-on-before-stop-request which should be received before the request is stopped. 3494
NetworkRequest.sys.mjs The NetworkRequest class is a wrapper around the internal channel which provides getters and methods closer to fetch's response concept (https://fetch.spec.whatwg.org/#concept-response). 15982
NetworkResponse.sys.mjs The NetworkResponse class is a wrapper around the internal channel which provides getters and methods closer to fetch's response concept (https://fetch.spec.whatwg.org/#concept-response). 9280
PDF.sys.mjs Convert array of strings of the form ["1-3", "2-4", "7", "9-"] to an flat array of limits, like [1, 4, 7, 7, 9, 2**31 - 1] (meaning 1-4, 7, 9-end) @param {Array.<string|number>} ranges Page ranges to print, e.g., ['1-5', '8', '11-13']. Defaults to the empty string, which means print all pages. @returns {Array.<number>} Even-length array containing page range limits 7861
Permissions.sys.mjs @typedef {string} PermissionState 4288
Prompt.sys.mjs @namespace 5478
Realm.sys.mjs @typedef {string} RealmType 9613
RecommendedPreferences.sys.mjs 18265
RemoteError.sys.mjs Base class for all remote protocol errors. 823
Stack.sys.mjs An object that contains details of a stack frame. @typedef {object} StackFrame @see nsIStackFrame @property {string=} asyncCause Type of asynchronous call by which this frame was invoked. @property {number} columnNumber The column number for this stack frame. @property {string} filename The source URL for this stack frame. @property {string} function SpiderMonkey’s inferred name for this stack frame’s function, or null. @property {number} lineNumber The line number for this stack frame (starts with 1). @property {number} sourceId The process-unique internal integer ID of this source. 2032
Sync.sys.mjs Throttle until the `window` has performed an animation frame. The animation frame is requested after the main thread has processed all the already queued-up runnables. @param {ChromeWindow} win Window to request the animation frame from. @param {object=} options @param {number=} options.timeout Timeout duration in milliseconds. This copes with navigating away from hidden iframes: if fragmentNavigated happens before their animation finishes, this would never resolve otherwise. By default 1500 ms in an optimised build and 4500 ms in debug builds. Specify null to disable the timeout. @returns {Promise} @throws {TypeError} @throws {RangeError} 13880
TabManager.sys.mjs Retrieve all the tabs in open browser windows. @returns {Array<Tab>} All the open browser tabs. Will return an empty list if tab browser is not available or tabs are undefined. 8254
test
UserContextManager.sys.mjs A UserContextManager instance keeps track of all public user contexts and maps their internal platform. This class is exported for test purposes. Otherwise the UserContextManager singleton should be used.