Name Description Size
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 @prop {ConduitID} [target] @prop {ConduitID} [sender] @prop {boolean} query @prop {object} arg 5608
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 @prop {ConduitID} id Globally unique across all processes. @prop {string[]} [recv] @prop {string[]} [send] @prop {string[]} [query] @prop {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: 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 }); } 11857
DocumentObserver.h 1956
Extension.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 91008
ExtensionActions.jsm Common base class for Page and Browser actions. 19316
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. 3621
ExtensionChild.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 29141
ExtensionChildDevToolsUtils.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 3416
ExtensionCommon.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 74320
ExtensionContent.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 36364
ExtensionPageChild.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 13860
ExtensionParent.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 57957
ExtensionPermissions.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 11008
ExtensionPolicyService.cpp ExtensionPolicyService *************************************************************************** 21605
ExtensionPolicyService.h 3947
ExtensionPreferencesManager.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 20749
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. 12515
ExtensionSettingsStore.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 22152
ExtensionShortcuts.jsm exported ExtensionShortcuts 15665
ExtensionStorage.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 13502
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. 28877
ExtensionStorageSync.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 6007
ExtensionStorageSyncKinto.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 45215
ExtensionTelemetry.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 6700
ExtensionTestCommon.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 13353
ExtensionUtils.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 9586
ExtensionXPCShellUtils.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 28638
ExtensionsChild.cpp static 1732
ExtensionsChild.h 962
ExtensionsParent.cpp 4167
ExtensionsParent.h 2006
FindContent.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 7538
MatchGlob.h 3207
MatchPattern.cpp AtomSet *************************************************************************** 21423
MatchPattern.h 9294
MatchURLFilters.jsm exported MatchURLFilters 5340
MessageChannel.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 37200
MessageManagerProxy.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 6435
NativeManifests.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 5614
NativeMessaging.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 11803
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()`. 1961
PerformanceCounters.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 4483
ProfilerGetSymbols-worker.js -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 4018
ProfilerGetSymbols.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 5835
ProxyChannelFilter.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 12267
Schemas.jsm -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 102009
WebExtensionContentScript.h 6801
WebExtensionPolicy.cpp moz-extension: blob: filesystem: " \ "'unsafe-eval' 'unsafe-inline'; " \ "object-src 'self' https://* moz-extension: blob: filesystem:;" #define BASE_CSP_PREF_V3 \ "extensions.webextensions.base-content-security-policy.v3" #define DEFAULT_BASE_CSP_V3 \ "script-src 'self'; object-src 'self'; " \ "style-src 'self'; worker-src 'self';" static const char kRestrictedDomainPref[] = "extensions.webextensions.restrictedDomains"; static inline ExtensionPolicyService& EPS() { return ExtensionPolicyService::GetSingleton(); } static nsISubstitutingProtocolHandler* Proto() { static nsCOMPtr<nsISubstitutingProtocolHandler> sHandler; if (MOZ_UNLIKELY(!sHandler)) { nsCOMPtr<nsIIOService> ios = do_GetIOService(); MOZ_RELEASE_ASSERT(ios); nsCOMPtr<nsIProtocolHandler> handler; ios->GetProtocolHandler(kProto, getter_AddRefs(handler)); sHandler = do_QueryInterface(handler); MOZ_RELEASE_ASSERT(sHandler); ClearOnShutdown(&sHandler); } return sHandler; } bool ParseGlobs(GlobalObject& aGlobal, Sequence<OwningMatchGlobOrString> aGlobs, nsTArray<RefPtr<MatchGlob>>& aResult, ErrorResult& aRv) { for (auto& elem : aGlobs) { if (elem.IsMatchGlob()) { aResult.AppendElement(elem.GetAsMatchGlob()); } else { RefPtr<MatchGlob> glob = MatchGlob::Constructor(aGlobal, elem.GetAsString(), true, aRv); if (aRv.Failed()) { return false; } aResult.AppendElement(glob); } } return true; } enum class ErrorBehavior { CreateEmptyPattern, Fail, }; already_AddRefed<MatchPatternSet> ParseMatches( GlobalObject& aGlobal, const OwningMatchPatternSetOrStringSequence& aMatches, const MatchPatternOptions& aOptions, ErrorBehavior aErrorBehavior, ErrorResult& aRv) { if (aMatches.IsMatchPatternSet()) { return do_AddRef(aMatches.GetAsMatchPatternSet().get()); } const auto& strings = aMatches.GetAsStringSequence(); nsTArray<OwningStringOrMatchPattern> patterns; if (!patterns.SetCapacity(strings.Length(), fallible)) { aRv.Throw(NS_ERROR_OUT_OF_MEMORY); return nullptr; } for (auto& string : strings) { OwningStringOrMatchPattern elt; elt.SetAsString() = string; patterns.AppendElement(elt); } RefPtr<MatchPatternSet> result = MatchPatternSet::Constructor(aGlobal, patterns, aOptions, aRv); if (aRv.Failed() && aErrorBehavior == ErrorBehavior::CreateEmptyPattern) { aRv.SuppressException(); result = MatchPatternSet::Constructor(aGlobal, {}, aOptions, aRv); } return result.forget(); } /***************************************************************************** WebExtensionPolicy *************************************************************************** 27919
WebExtensionPolicy.h 6929
WebNavigation.jsm Support nsIObserver interface to observe the urlbar autocomplete events used to keep track of the urlbar user interaction. 12845
WebNavigationFrames.jsm exported WebNavigationFrames 2511
child 12
components.conf 686
docs 11
dummy.xhtml 266
ext-browser-content.js eslint-env mozilla/frame-script 9877
ext-toolkit.json 6924
extIWebNavigation.idl 1225
extensionProcessScriptLoader.js 293
extensions-toolkit.manifest 835
jar.mn 3734
moz.build 3173
mozIExtensionProcessScript.idl 733
onExtensionBrowser.js -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- 470
parent 34
profiler_get_symbols.js @param {WasmMemBuffer} binary_data @param {WasmMemBuffer} debug_data @param {string} breakpad_id @returns {CompactSymbolTable} 13464
schemas 43
storage 6
test 4
webrequest 21
.eslintrc.js Silencing the error because ... 7312