#import #import // https://notifications.spec.whatwg.org/#notification [Exposed=(Window,Worker)] interface Notification : EventTarget { constructor(DOMString title, optional NotificationOptions options = {}); // FIXME: static readonly attribute NotificationPermission permission; // FIXME: [Exposed=Window] static Promise requestPermission(optional NotificationPermissionCallback deprecatedCallback); static readonly attribute unsigned long maxActions; [FIXME] attribute EventHandler onclick; [FIXME] attribute EventHandler onshow; [FIXME] attribute EventHandler onerror; [FIXME] attribute EventHandler onclose; readonly attribute Utf16DOMString title; readonly attribute NotificationDirection dir; readonly attribute Utf16DOMString lang; readonly attribute Utf16DOMString body; readonly attribute USVString navigate; readonly attribute Utf16DOMString tag; readonly attribute USVString image; readonly attribute USVString icon; readonly attribute USVString badge; // FIXME: [SameObject] readonly attribute FrozenArray vibrate; readonly attribute EpochTimeStamp timestamp; readonly attribute boolean renotify; readonly attribute boolean? silent; readonly attribute boolean requireInteraction; [SameObject] readonly attribute any data; [SameObject] readonly attribute FrozenArray actions; [FIXME] undefined close(); }; dictionary NotificationOptions { NotificationDirection dir = "auto"; DOMString lang = ""; DOMString body = ""; USVString navigate; DOMString tag = ""; USVString image; USVString icon; USVString badge; // FIXME: VibratePattern vibrate; EpochTimeStamp timestamp; boolean renotify = false; boolean? silent = null; boolean requireInteraction = false; any data = null; sequence actions = []; }; enum NotificationPermission { "default", "denied", "granted" }; enum NotificationDirection { "auto", "ltr", "rtl" }; dictionary NotificationAction { required DOMString action; required DOMString title; USVString navigate; USVString icon; }; [FIXME] callback NotificationPermissionCallback = undefined (NotificationPermission permission);