1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
/* -*- 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/.
*
* The origin of this IDL file is
* https://notifications.spec.whatwg.org/
*
* Copyright:
* To the extent possible under law, the editors have waived all copyright and
* related or neighboring rights to this work.
*/
[Exposed=(Window,Worker),
Func="mozilla::dom::Notification::PrefEnabled"]
interface Notification : EventTarget {
[Throws]
constructor(DOMString title, optional NotificationOptions options = {});
[GetterThrows]
static readonly attribute NotificationPermission permission;
[NewObject, Func="mozilla::dom::Notification::RequestPermissionEnabledForScope"]
static Promise<NotificationPermission> requestPermission(optional NotificationPermissionCallback permissionCallback);
[Pref="dom.webnotifications.actions.enabled"]
static readonly attribute unsigned long maxActions;
attribute EventHandler onclick;
attribute EventHandler onshow;
attribute EventHandler onerror;
attribute EventHandler onclose;
[Pure]
readonly attribute DOMString title;
[Pure]
readonly attribute NotificationDirection dir;
[Pure]
readonly attribute DOMString lang;
[Pure]
readonly attribute DOMString body;
[Constant]
readonly attribute DOMString tag;
[Pure]
readonly attribute UTF8String icon;
[Constant, Pref="dom.webnotifications.requireinteraction.enabled"]
readonly attribute boolean requireInteraction;
[Constant, Pref="dom.webnotifications.silent.enabled"]
readonly attribute boolean silent;
[Cached, Frozen, Pure, Pref="dom.webnotifications.vibrate.enabled"]
readonly attribute sequence<unsigned long> vibrate;
[Constant]
readonly attribute any data;
// Bug 1236777: FrozenArray is not supported
// [SameObject] readonly attribute FrozenArray<NotificationAction> actions;
[Frozen, Cached, Pure, Pref="dom.webnotifications.actions.enabled"]
readonly attribute sequence<NotificationAction> actions;
undefined close();
};
typedef (unsigned long or sequence<unsigned long>) VibratePattern;
dictionary NotificationOptions {
NotificationDirection dir = "auto";
DOMString lang = "";
DOMString body = "";
// [UseCounter], bug 1976515
UTF8String navigate;
DOMString tag = "";
// [UseCounter], bug 1976515
UTF8String image;
UTF8String icon = "";
// [UseCounter], bug 1976515
UTF8String badge;
// [UseCounter], bug 1976515
VibratePattern vibrate;
// [UseCounter], bug 1976515
EpochTimeStamp timestamp;
// [UseCounter], bug 1976515
boolean renotify = false;
boolean silent = false;
// [UseCounter], bug 1976515
boolean requireInteraction = false;
any data = null;
// [UseCounter], bug 1976515
[Pref="dom.webnotifications.actions.enabled"]
sequence<NotificationAction> actions = [];
};
dictionary GetNotificationOptions {
DOMString tag = "";
};
enum NotificationPermission {
"default",
"denied",
"granted"
};
dictionary NotificationAction {
required DOMString action;
required DOMString title;
};
callback NotificationPermissionCallback = undefined (NotificationPermission permission);
enum NotificationDirection {
"auto",
"ltr",
"rtl"
};
|