Name Description Size
.eslintrc.js Silencing the error because ... 7249
child
components.conf 686
ConduitsChild.jsm This @file implements the child side of Conduits, an abstraction over Fission IPC for extension API subject. See {@link ConduitsParent.jsm} for more details about the overall design. @typedef {object} MessageData @property {ConduitID} [target] @property {ConduitID} [sender] @property {boolean} query @property {object} arg 6164
ConduitsParent.jsm This @file implements the parent side of Conduits, an abstraction over Fission IPC for extension Contexts, API managers, Ports/Messengers, and other types of "subjects" participating in implementation of extension APIs. Additionally, knowledge about conduits from all child processes is gathered here, and used together with the full CanonicalBrowsingContext tree to route IPC messages and queries directly to the right subjects. Each Conduit is tied to one subject, attached to a ConduitAddress descriptor, and exposes an API for sending/receiving via an actor, or multiple actors in case of the parent process. @typedef {number|string} ConduitID @typedef {object} ConduitAddress @property {ConduitID} id Globally unique across all processes. @property {string[]} [recv] @property {string[]} [send] @property {string[]} [query] @property {string[]} [cast] Lists of recvX, sendX, queryX and castX methods this subject will use. @typedef {"messenger"|"port"|"tab"} BroadcastKind Kinds of broadcast targeting filters. @example ```js { init(actor) { this.conduit = actor.openConduit(this, { id: this.id, recv: ["recvAddNumber"], send: ["sendNumberUpdate"], }); }, recvAddNumber({ num }, { actor, sender }) { num += 1; this.conduit.sendNumberUpdate(sender.id, { num }); } } ``` 14566
docs
DocumentObserver.h 1955
dummy.xhtml 266
ext-browser-content.js eslint-env mozilla/frame-script 8755
ext-toolkit.json 7535
Extension.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 119043
ExtensionActions.jsm Common base class for Page and Browser actions. 21300
ExtensionActivityLog.jsm Notify all listeners of an extension activity. @param {string} id The ID of the extension that caused the activity. @param {string} viewType The view type the activity is in. @param {string} type The type of the activity. @param {string} name The API name or path. @param {object} data Activity specific data. @param {string} timeStamp The timestamp for the activity. 3580
ExtensionChild.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 30252
ExtensionChildDevToolsUtils.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 3340
ExtensionCommon.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 92153
ExtensionContent.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 40565
ExtensionDNR.sys.mjs Whenever a request occurs, the rules of each RuleManager are matched against the request to determine the final action to take. The RequestEvaluator class is responsible for evaluating rules, and its behavior is described below. Short version: Find the highest-priority rule that matches the given request. If the request is not canceled, all matching allowAllRequests and modifyHeaders actions are returned. Longer version: Unless stated otherwise, the explanation below describes the behavior within an extension. An extension can specify rules, optionally in multiple rulesets. The ability to have multiple ruleset exists to support bulk updates of rules. Rulesets are NOT independent - rules from different rulesets can affect each other. When multiple rules match, the order between rules are defined as follows: - Ruleset precedence: session > dynamic > static (order from manifest.json). - Rules in ruleset precedence: ordered by rule.id, lowest (numeric) ID first. - Across all rules+rulesets: highest rule.priority (default 1) first, action precedence if rule priority are the same. The primary documented way for extensions to describe precedence is by specifying rule.priority. Between same-priority rules, their precedence is dependent on the rule action. The ruleset/rule ID precedence is only used to have a defined ordering if multiple rules have the same priority+action. Rule actions have the following order of precedence and meaning: - "allow" can be used to ignore other same-or-lower-priority rules. - "allowAllRequests" (for main_frame / sub_frame resourceTypes only) has the same effect as allow, but also applies to (future) subresource loads in the document (including descendant frames) generated from the request. - "block" cancels the matched request. - "upgradeScheme" upgrades the scheme of the request. - "redirect" redirects the request. - "modifyHeaders" rewrites request/response headers. The matched rules are evaluated in two passes: 1. findMatchingRules(): Find the highest-priority rule(s), and choose the action with the highest precedence (across all rulesets, any action except modifyHeaders). This also accounts for any allowAllRequests from an ancestor frame. 2. getMatchingModifyHeadersRules(): Find matching rules with the "modifyHeaders" action, minus ignored rules. Reaching this step implies that the request was not canceled, so either the first step did not yield a rule, or the rule action is "allow" or "allowAllRequests" (i.e. ignore same-or-lower-priority rules). If an extension does not have sufficient permissions for the action, the resulting action is ignored. The above describes the evaluation within one extension. When a sequence of (multiple) extensions is given, they may return conflicting actions in the first pass. This is resolved by choosing the action with the following order of precedence, in RequestEvaluator.evaluateRequest(): - block - redirect / upgradeScheme - allow / allowAllRequests 79587
ExtensionDNRLimits.sys.mjs The minimum number of static rules guaranteed to an extension across its enabled static rulesets. Any rules above this limit will count towards the global static rule limit. 2248
ExtensionDNRStore.sys.mjs Internal representation of the enabled static rulesets (used in StoreData and Store methods type signatures). @typedef {object} EnabledStaticRuleset @inner @property {number} idx Represent the position of the static ruleset in the manifest `declarative_net_request.rule_resources` array. @property {Array<Rule>} rules Represent the array of the DNR rules associated with the static ruleset. 59375
ExtensionPageChild.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 14423
ExtensionParent.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 70496
ExtensionPermissions.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 19815
ExtensionPolicyService.cpp ExtensionPolicyService *************************************************************************** 23468
ExtensionPolicyService.h 4237
ExtensionPreferencesManager.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 23268
ExtensionProcessScript.jsm This script contains the minimum, skeleton content process code that we need in order to lazily load other extension modules when they are first necessary. Anything which is not likely to be needed immediately, or shortly after startup, in *every* browser process live outside of this file. 16247
extensionProcessScriptLoader.js eslint-env mozilla/process-script 335
extensions-toolkit.manifest 835
ExtensionsChild.cpp static 2132
ExtensionsChild.h 984
ExtensionScriptingStore.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 10988
ExtensionSettingsStore.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 22214
ExtensionShortcuts.jsm exported ExtensionShortcuts 15850
ExtensionsParent.cpp 4181
ExtensionsParent.h 2006
ExtensionStorage.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 13494
ExtensionStorageIDB.jsm Get the DOMException error name for a given error object. @param {Error | undefined} error The Error object to convert into a string, or undefined if there was no error. @returns {string | undefined} The DOMException error name (sliced to a maximum of 80 chars), "OtherError" if the error object is not a DOMException instance, or `undefined` if there wasn't an error. 28912
ExtensionStorageSync.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 5997
ExtensionStorageSyncKinto.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 45708
ExtensionTelemetry.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 7606
ExtensionTestCommon.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 21941
ExtensionUtils.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 9918
ExtensionWorkerChild.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 25989
ExtensionXPCShellUtils.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 20158
extIWebNavigation.idl 1224
FindContent.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 7538
jar.mn 4070
MatchGlob.h 3719
MatchPattern.cpp AtomSet *************************************************************************** 21249
MatchPattern.h 11232
MatchURLFilters.jsm exported MatchURLFilters 5292
MessageChannel.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 37244
MessageManagerProxy.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 6360
metrics.yaml 987
moz.build 3687
mozIExtensionAPIRequestHandling.idl 7611
mozIExtensionProcessScript.idl 733
NativeManifests.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 5729
NativeMessaging.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 12347
parent
PerformanceCounters.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 4379
PExtensions.ipdl A generic protocol used by the extension framework for process-level IPC. A child instance is created at startup in the parent process and each content child process, which can be accessed via `mozilla::extensions::ExtensionsChild::Get()`. 1986
ProxyChannelFilter.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 12530
schemas
Schemas.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 110092
storage
test
WebExtensionContentScript.h 6661
WebExtensionPolicy.cpp 33315
WebExtensionPolicy.h const 11909
webidl-api
WebNavigation.jsm Support nsIObserver interface to observe the urlbar autocomplete events used to keep track of the urlbar user interaction. 12361
WebNavigationFrames.jsm exported WebNavigationFrames 2668
webrequest