| content |  |  | 
        
          | HeadlessShell.sys.mjs |  | 7663 | 
        
          | jar.mn |  | 408 | 
        
          | moz.build |  | 2387 | 
        
          | nsGNOMEShellDBusHelper.cpp | "icon-data": a tuple of type (iiibiiay) describing a pixbuf with width,
              height, rowstride, has-alpha,
              bits-per-sample, channels,
              image data | 14963 | 
        
          | nsGNOMEShellDBusHelper.h |  | 1457 | 
        
          | nsGNOMEShellSearchProvider.cpp |  | 19233 | 
        
          | nsGNOMEShellSearchProvider.h |  | 5219 | 
        
          | nsGNOMEShellService.cpp |  | 15132 | 
        
          | 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. | 1035 | 
        
          | nsIMacShellService.idl | Opens the desktop preferences, e.g. for after setting the background. | 1708 | 
        
          | nsIOpenTabsProvider.idl | List of currently open public tabs | 549 | 
        
          | 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 https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/6f2e7920-50a9-459d-bfdd-316e459e87c0/ishelllink-getpath-returns-wrong-folder-for-64-bit-application-when-called-from-32-bit-application
 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. Must be
        either "Programs" or "Desktop".
 @param aShortcutRelativePath The relative path of the shortcut from the shortcut
        folder.
 @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 | 16877 | 
        
          | nsMacShellService.cpp |  | 11740 | 
        
          | nsMacShellService.h |  | 944 | 
        
          | nsShellService.h |  | 504 | 
        
          | nsToolkitShellService.h |  | 788 | 
        
          | nsWindowsShellService.cpp | Enable logging by setting MOZ_LOG to "nsWindowsShellService:5" for debugging
 purposes. | 103457 | 
        
          | nsWindowsShellService.h |  | 977 | 
        
          | nsWindowsShellServiceInternal.h |  | 912 | 
        
          | OpenTabsProvider.sys.mjs |  | 892 | 
        
          | ScreenshotChild.sys.mjs |  | 929 | 
        
          | search-provider-files |  |  | 
        
          | ShellService.sys.mjs | Internal functionality to save and restore the docShell.allow* properties. | 20344 | 
        
          | StartupOSIntegration.sys.mjs |  | 10412 | 
        
          | test |  |  | 
        
          | Windows11LimitedAccessFeatures.cpp | This file exists so that LaunchModernSettingsDialogDefaultApps can be called
 without linking to libxul. | 12838 | 
        
          | 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. | 2170 | 
        
          | 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. | 20296 | 
        
          | Windows11TaskbarPinning.h | This file exists to keep the Windows 11 Taskbar Pinning API
 related code as self-contained as possible. | 1033 | 
        
          | WindowsDefaultBrowser.cpp | This file exists so that LaunchModernSettingsDialogDefaultApps can be called
 without linking to libxul. | 6794 | 
        
          | 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 <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/> | 17361 | 
        
          | 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 |