Name Description Size Coverage
assets -
components.conf 695 -
content -
CustomIconManager.sys.mjs Inlined catalog of selectable icons. Each entry has: iconResourceId: the Win32 resource ID of an icon embedded in firefox.exe at build time (declared in toolkit/xre/nsNativeAppSupportWin.h and browser/app/splash.rc). This is what gets applied: shortcuts reference it as firefox.exe,-<iconResourceId> and live windows load it directly. The catalog-id -> resource-id mapping is ABI: never remap or reuse an id once it has shipped, even if the icon is retired from the picker. preview: a chrome:// URI resolving to the same .ico shipped in omni.ja (see browser/components/shell/jar.mn). Used only to render a thumbnail in the about:settings picker; never used to apply the icon. PE resources are not addressable by a URL, hence the separate display asset. l10nId: Fluent id for the icon's about:settings label. gated: if true, the icon is a "Bonus" icon, offered only once the browser is both the default browser and pinned to the taskbar. This is purely an about:settings policy (the UI disables the option); CustomIconManager itself does not enforce it. Theme-aware icons (e.g. Minimal, a monochrome silhouette that's only legible against a matching background) instead carry a `variants` object keyed by color scheme ("dark"/"light"), each with its own iconResourceId + preview. `iconResourceId`/`preview` are read through resolveResourceId()/resolvePreview() so callers don't special-case theme-aware entries: the applied resource is chosen by the OS theme (the taskbar background), while the about:settings preview is chosen by the document's own color scheme (the surface it renders on). These differ only when the browser theme is overridden away from the OS. 16511 -
HeadlessShell.sys.mjs 7535 -
icons -
jar.mn 1072 -
moz.build 3173 -
nsGNOMEShellDBusHelper.cpp "icon-data": a tuple of type (iiibiiay) describing a pixbuf with width, height, rowstride, has-alpha, bits-per-sample, channels, image data 14838 -
nsGNOMEShellDBusHelper.h 1326 -
nsGNOMEShellSearchProvider.cpp 19108 -
nsGNOMEShellSearchProvider.h 5088 -
nsGNOMEShellService.cpp 28386 -
nsGNOMEShellService.h 1250 -
nsIGNOMEShellService.idl Used to determine whether or not to offer "Set as desktop background" functionality. Even if shell service is available it is not guaranteed that it is able to set the background for every desktop which is especially true for Linux with its many different desktop environments. 3536 -
nsILimitedAccessFeature.idl An interface for unlocking Windows Limited Access Features. This allows use of Windows APIs which are otherwise gated. 1633 -
nsIMacShellService.idl Opens the desktop preferences, e.g. for after setting the background. 3744 -
nsIOpenTabsProvider.idl List of currently open public tabs 549 -
nsISecondaryTile.idl Provides functions that are called (on the main thread) when the secondary tile creation or deletion finishes. 2833 -
nsIShellService.idl Determines whether or not Firefox is the "Default Browser." This is simply whether or not Firefox is registered to handle http links. @param aForAllTypes true if the check should be made for HTTP and HTML. false if the check should be made for HTTP only. This parameter may be ignored on some platforms. 2414 -
nsIWindowsShellService.idl Bit flags for launchSetDefaultAppPicker's aFlags argument. They map 1:1 onto the flags accepted by the undocumented Windows IOpenWithLauncher COM interface's Launch method. The mapping below was determined empirically and determines the picker's messaging and actions. 21263 -
nsMacShellService.h 855 -
nsMacShellService.mm 18363 -
nsShellService.h 592 -
nsToolkitShellService.h 699 -
nsWindowsShellService.cpp Enable logging by setting MOZ_LOG to "nsWindowsShellService:5" for debugging purposes. 111684 -
nsWindowsShellService.h 836 -
nsWindowsShellServiceInternal.h 823 -
OpenTabsProvider.sys.mjs 892 -
rust -
ScreenshotChild.sys.mjs 929 -
search-provider-files -
ShellService.sys.mjs Internal functionality to save and restore the docShell.allow* properties. 43820 -
StartupOSIntegration.sys.mjs 11346 -
test -
Windows11TaskbarPinning.cpp The Win32 SetEvent and WaitForSingleObject functions take HANDLE parameters which are typedefs of void*. When using nsAutoHandle, that means if you forget to call .get() first, everything still compiles and then doesn't work at runtime. For instance, calling SetEvent(mEvent) below would compile but not work at runtime and the waits would block forever. To ensure this isn't an issue, we wrap the event in a custom class here with the simple methods that we want on an event. 9477 -
Windows11TaskbarPinning.h This file exists to keep the Windows 11 Taskbar Pinning API related code as self-contained as possible. 803 -
WindowsDefaultBrowser.cpp This file exists so that LaunchModernSettingsDialogDefaultApps can be called without linking to libxul. 10726 -
WindowsDefaultBrowser.h This file exists so that LaunchModernSettingsDialogDefaultApps can be called without linking to libxul. 1098 -
WindowsSetDefaultAppCmdHandler.sys.mjs Command-line handler for the Windows IOpenWithLauncher round-trip. When the ShellService.setAsDefault{PDF,Protocol}Handler launches the windows only "Open with" picker, it hands it a bundled stub file path for file-type defaults, or a URL for protocol defaults, and stashes a one-shot { openWithArg, overrideUri } redirect. If the user picks Firefox, Windows invokes Firefox with `-osint -url <openWithArg>`. This handler runs before BrowserContentHandler and intercepts the launch: it asks ShellService whether the -url value matches the pending openWithArg and, if so, suppresses the open and optionally redirects to the stashed overrideUri so the user lands somewhere meaningful in Firefox. 3059 -
WindowsSetDefaultRedirect.sys.mjs The IOpenWithLauncher api call protocol shared by the producer (ShellService.setAsDefault{PDF,Protocol}Handler) and the consumer (WindowsSetDefaultAppCmdHandler). ShellService arms a one-shot redirect before launching the OS "Open with" picker via IOpenWithLauncher; once the user picks Firefox, the OS relaunches Firefox with the same value and the command-line handler consumes it. This module owns that shared state (the pref shape and the matching rules). 4494 -
WindowsUIElement.cpp 2782 -
WindowsUIElement.h Wraps a UI Automation element and its containing window, exposing higher-level operations. 2371 -
WindowsUIOverlayImage.cpp 11526 -
WindowsUIOverlayImage.h Displays an overlay image on top of a UI Automation element. 2232 -
WindowsUserChoice.cpp Generate and check the UserChoice Hash, which protects file and protocol associations on Windows 10. NOTE: This is also used in the WDBA, so it avoids XUL and XPCOM. References: - PS-SFTA by Danysys <https://github.com/DanysysTeam/PS-SFTA> - based on a PureBasic version by LMongrain <https://github.com/DanysysTeam/SFTA> - AssocHashGen by "halfmeasuresdisabled", see bug 1225660 and <https://www.reddit.com/r/ReverseEngineering/comments/3t7q9m/assochashgen_a_reverse_engineered_version_of/> - SetUserFTA changelog <https://kolbi.cz/blog/2017/10/25/setuserfta-userchoice-hash-defeated-set-file-type-associations-per-user/> 17281 -
WindowsUserChoice.h Check the UserChoice Hashes for https, http, .html, .htm This should be checked before attempting to set a new default browser via the UserChoice key, to confirm our understanding of the existing hash. If an incorrect hash is written, Windows will prompt the user to choose a new default (or, in recent versions, it will just reset the default to Edge). Assuming that the existing hash value is correct (since Windows is fairly diligent about replacing bad keys), if we can recompute it from scratch, then we should be able to compute a correct hash for our new UserChoice key. @return true if we matched all the hashes, false otherwise. 4470 -