93 lines
3.5 KiB
Plaintext
93 lines
3.5 KiB
Plaintext
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nsIShellService.idl"
|
|
|
|
interface nsIINIParserWriter;
|
|
interface mozIDOMWindowProxy;
|
|
|
|
[scriptable, uuid(2ce5c803-edcd-443d-98eb-ceba86d02d13)]
|
|
interface nsIGNOMEShellService : nsIShellService
|
|
{
|
|
/**
|
|
* 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.
|
|
*/
|
|
readonly attribute boolean canSetDesktopBackground;
|
|
|
|
/**
|
|
* Returns true if Firefox is set as the default handler for the scheme.
|
|
*/
|
|
boolean isDefaultForScheme(in AUTF8String aScheme);
|
|
|
|
AUTF8String getGSettingsString(in AUTF8String aScheme, in AUTF8String aKey);
|
|
void setGSettingsString(in AUTF8String aScheme, in AUTF8String aKey, in AUTF8String aValue);
|
|
|
|
/**
|
|
* Gets the command name that was used to start the browser.
|
|
*
|
|
* @returns the value of argv[0].
|
|
*/
|
|
ACString getArgv0();
|
|
|
|
/**
|
|
* Gets the program name from GLib, which is used as the default window
|
|
* class. This will often be identical to the app remotingName, but can be
|
|
* overridden with the '--name' command line argument.
|
|
*
|
|
* @returns the result of g_get_prgname.
|
|
*/
|
|
ACString getGlibPrgname();
|
|
|
|
/**
|
|
* Used for the return value of getDesktopEntryStatus. 'ABSENT' indicates the
|
|
* desktop file doesn't exist (or does but is marked Hidden=); 'INVISIBLE'
|
|
* indicates the desktop file exists, but will not be shown (e.g. via
|
|
* NoDisplay=); 'VISIBLE' indicates that it does exist and will be shown.
|
|
*/
|
|
cenum DesktopEntryStatus : 8 {
|
|
DESKTOP_ENTRY_ABSENT = 0,
|
|
DESKTOP_ENTRY_INVISIBLE = 1,
|
|
DESKTOP_ENTRY_VISIBLE = 2,
|
|
};
|
|
|
|
/**
|
|
* Determines whether the named desktop entry exists and is visible,
|
|
* returning a status intended for telemetry.
|
|
*
|
|
* Note that this could be inaccurate if you're running under Flatpak or
|
|
* Snap. From JavaScript, you can detect that with nsGIOService.
|
|
*
|
|
* @param aEntryId The ID of the desktop entry; this should end with
|
|
* '.desktop'.
|
|
* @returns The current status of the desktop entry.
|
|
*/
|
|
nsIGNOMEShellService_DesktopEntryStatus getDesktopEntryStatus(in AUTF8String aEntryId);
|
|
|
|
/**
|
|
* Uses the Dynamic Launcher portal to install a desktop entry for this user.
|
|
*
|
|
* @param aEntryId The ID of the desktop entry; if this were being installed
|
|
* manually, this would be the filename before ".desktop".
|
|
* @param aDesktopEntry The content of the desktop entry. Note that the
|
|
* 'Name' and 'Icon' fields may be overridden by the user.
|
|
* @param aWindow The window to use as the owner of the dialog (if any).
|
|
* @returns A promise resolved when the user has completed the installation.
|
|
*/
|
|
[implicit_jscontext]
|
|
Promise requestInstallDynamicLauncher(in AUTF8String aEntryId, in nsIINIParserWriter aDesktopEntry, in mozIDOMWindowProxy aWindow);
|
|
|
|
/**
|
|
* Uses the Dynamic Launcher portal to remove a desktop entry for this user.
|
|
*
|
|
* @param aEntryId The ID that the desktop entry was installed with.
|
|
* @returns A promise that resolves when uninstallation is complete.
|
|
*/
|
|
[implicit_jscontext]
|
|
Promise requestUninstallDynamicLauncher(in AUTF8String aEntryId);
|
|
};
|