Name Description Size
HeadlessShell.sys.mjs 7638 408 2189
nsGNOMEShellDBusHelper.cpp 18867
nsGNOMEShellDBusHelper.h 1524
nsGNOMEShellSearchProvider.cpp 14850
nsGNOMEShellSearchProvider.h 4700
nsGNOMEShellService.cpp 15692
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. 975
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. 2711
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 7998
nsMacShellService.cpp 9475
nsMacShellService.h 942
nsShellService.h 590
nsToolkitShellService.h 788
nsWindowsShellService.cpp 56372
nsWindowsShellService.h 1114
ScreenshotChild.sys.mjs 929
ShellService.sys.mjs Internal functionality to save and restore the docShell.allow* properties. 16603
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 <> 15056
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. 3690