diff options
Diffstat (limited to 'toolkit/components/alerts/nsIWindowsAlertsService.idl')
-rw-r--r-- | toolkit/components/alerts/nsIWindowsAlertsService.idl | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/toolkit/components/alerts/nsIWindowsAlertsService.idl b/toolkit/components/alerts/nsIWindowsAlertsService.idl new file mode 100644 index 0000000000..7e7a122eeb --- /dev/null +++ b/toolkit/components/alerts/nsIWindowsAlertsService.idl @@ -0,0 +1,76 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 "nsIAlertsService.idl" + +[scriptable, uuid(a46c385b-a45c-4b48-ab7c-aaed1252bb83)] +interface nsIWindowsAlertNotification : nsIAlertNotification +{ + /** + * Boolean to signal that notification button actions will be handled, and the + * resulting action should be communicated back on clicks through the + * `aData` field. + */ + attribute boolean handleActions; + + /** + * Image placements corresponding to placements in Windows Toast + * Notification XML. + */ + cenum ImagePlacement : 8 { + eInline, + eHero, + eIcon, + }; + + /** + * Enum to specify image placement we want in the notification. n.b. in the + * future we could extend this to instead allow multiple images in differing + * placements in the same notification. + */ + attribute nsIWindowsAlertNotification_ImagePlacement imagePlacement; +}; + +[scriptable, uuid(e01c8066-fb4b-4304-b9c9-ab6ed4a8322c)] +interface nsIWindowsAlertsService : nsIAlertsService +{ + /** + * If callbacks for the given Windows-specific tag string will be handled by + * this Firefox process, set the associated event. + * + * @param {AString} aWindowsTag the tag + * @return {Promise} + * @resolves {Object} + * Resolves with an Object, may contain the following optional + * properties if notification exists but wasn't registered with + * the WindowsAlertsService: + * + * `notificationData` {string} relaunch data, generally opaque to + * the Windows notification server DLL, for this relaunch. + * + * @rejects `nsresult` when there was an error retrieving the notification. + */ + [implicit_jscontext] + Promise handleWindowsTag(in AString aWindowsTag); + + /** + * Get the Windows-specific XML generated for the given alert. + * + * @note This method is intended for testing purposes. + * + * @param {nsIAlertNotification} aAlert the alert + * @param {AString} an optional Windows tag; default is generated + * @return {string} generated XML + */ + AString getXmlStringForWindowsAlert(in nsIAlertNotification aAlert, + [optional] in AString aWindowsTag); + + /** + * Removes all action center and snoozed notifications associated with this + * install. Note that this removes all notifications regardless of which profile + * they originated from. + */ + void removeAllNotificationsForInstall(); +}; |