Name Description Size
HeadlessShell.sys.mjs 7628 408 2233
nsGNOMEShellDBusHelper.cpp "icon-data": a tuple of type (iiibiiay) describing a pixbuf with width, height, rowstride, has-alpha, bits-per-sample, channels, image data 13637
nsGNOMEShellDBusHelper.h 1457
nsGNOMEShellSearchProvider.cpp 18227
nsGNOMEShellSearchProvider.h 5122
nsGNOMEShellService.cpp 15554
nsGNOMEShellService.h 1331
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. 860
nsIMacShellService.idl Opens the desktop preferences, e.g. for after setting the background. 1708
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. 2494
nsIWindowsShellService.idl Creates a new shortcut (.lnk) file. This shortcut will be recorded in a new shortcuts log file located in %PROGRAMDATA%\Mozilla-1de4eec8-1241-4177-a864-e594e8d1fb38 that is named after the currently running application and current user, eg: Firefox_user123_shortcuts.ini. For reasons that we haven't been able to pin down, these shortcuts get created with extra metadata on them (KnownFolderDataBlock, SpecialFolderDataBlock) that cause the Windows ShellLink classes to improperly read their target path with certain parameters. This causes any 32-bit programs that read the links (such as our installer and uninstaller) to think that 64-bit installs are located in the 32-bit Program Files directory. See for some additional discussion of this. @param aBinary Target file of the shortcut. @param aArguments Arguments to set for the shortcut. May be empty. @param aDescription The description of the shortcut. The string used here shows up as the hover text of the shortcut in Explorer and on the Taskbar (if the shortcut is pinned there). @param aIconFile The file containing the desired icon for the shortcut. This can be the same file as aBinary. @param aIconIndex The index of the in aIconFile. Note that this is 0 based index that IShellLinkW requires, _not_ a Resource ID that is sometimes used for icons. @param aAppUserModelId The App User Model ID to set for the shortcut. This will affect which icon on the Taskbar the application groups with when first launched. @param aShortcutFolder The special Windows folder to create the shortcut in. One of: CommonStartMenu, StartMenu, PublicDesktop, Desktop, or QuickLaunch. @param aShortcutName The filename of the shortcut within aShortcutFolder. @return The full native path to the created shortcut. @throws NS_ERROR_INVALID_ARG if an invalid shortcut folder is passed @throws NS_ERROR_FILE_NOT_FOUND if the shortcut file or shortcuts log cannot be created or accessed @throws NS_ERROR_FAILURE for other types of failures 14985
nsMacShellService.cpp 11752
nsMacShellService.h 942
nsShellService.h 590
nsToolkitShellService.h 788
nsWindowsShellService.cpp 79246
nsWindowsShellService.h 1031
nsWindowsShellServiceInternal.h 912
ScreenshotChild.sys.mjs 929
ShellService.sys.mjs Internal functionality to save and restore the docShell.allow* properties. 15835
Windows11LimitedAccessFeatures.cpp This file exists so that LaunchModernSettingsDialogDefaultApps can be called without linking to libxul. 9041
Windows11LimitedAccessFeatures.h Class to manage unlocking limited access features on Windows 11. Unless stubbing for testing purposes, create objects of this class with CreateWin11LimitedAccessFeaturesInterface. Windows 11 requires certain features to be unlocked in order to work (for instance, the Win11 Taskbar pinning APIs). Call Unlock() to unlock them. Generally, results will be cached in atomic variables and future calls to Unlock will be as long as it takes to fetch an atomic variable. 1830
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. 12753
Windows11TaskbarPinning.h This file exists to keep the Windows 11 Taskbar Pinning API related code as self-contained as possible. 976
WindowsDefaultBrowser.cpp This file exists so that LaunchModernSettingsDialogDefaultApps can be called without linking to libxul. 6828
WindowsDefaultBrowser.h This file exists so that LaunchModernSettingsDialogDefaultApps can be called without linking to libxul. 702
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 <> - based on a PureBasic version by LMongrain <> - AssocHashGen by "halfmeasuresdisabled", see bug 1225660 and <> - SetUserFTA changelog <> 17395
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. 4553