summaryrefslogtreecommitdiffstats
path: root/toolkit/components/alerts/nsIWindowsAlertsService.idl
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/alerts/nsIWindowsAlertsService.idl')
-rw-r--r--toolkit/components/alerts/nsIWindowsAlertsService.idl76
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();
+};