| <!doctype html> |
| <meta charset=utf-8> |
| <title>Notification interface IDL tests</title> |
| <div id=log></div> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script src=/resources/WebIDLParser.js></script> |
| <script src=/resources/idlharness.js></script> |
| <script type=text/plain class=untested> |
| interface EventTarget { |
| void addEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */); |
| void removeEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */); |
| boolean dispatchEvent(Event event); |
| }; |
| [TreatNonCallableAsNull] |
| callback EventHandlerNonNull = any (Event event); |
| typedef EventHandlerNonNull? EventHandler; |
| </script> |
| <script type=text/plain> |
| [Constructor(DOMString title, optional NotificationOptions options), |
| Exposed=(Window,Worker)] |
| interface Notification : EventTarget { |
| static readonly attribute NotificationPermission permission; |
| [Exposed=Window] static Promise<NotificationPermission> requestPermission(optional NotificationPermissionCallback deprecatedCallback); |
| |
| static readonly attribute unsigned long maxActions; |
| |
| attribute EventHandler onclick; |
| attribute EventHandler onshow; |
| attribute EventHandler onerror; |
| attribute EventHandler onclose; |
| |
| readonly attribute DOMString title; |
| readonly attribute NotificationDirection dir; |
| readonly attribute DOMString lang; |
| readonly attribute DOMString body; |
| readonly attribute DOMString tag; |
| readonly attribute USVString image; |
| readonly attribute USVString icon; |
| readonly attribute USVString badge; |
| [SameObject] readonly attribute FrozenArray<unsigned long> vibrate; |
| readonly attribute DOMTimeStamp timestamp; |
| readonly attribute boolean renotify; |
| readonly attribute boolean silent; |
| readonly attribute boolean requireInteraction; |
| [SameObject] readonly attribute any data; |
| [SameObject] readonly attribute FrozenArray<NotificationAction> actions; |
| |
| void close(); |
| }; |
| |
| dictionary NotificationOptions { |
| NotificationDirection dir = "auto"; |
| DOMString lang = ""; |
| DOMString body = ""; |
| DOMString tag = ""; |
| USVString image; |
| USVString icon; |
| USVString badge; |
| VibratePattern vibrate; |
| DOMTimeStamp timestamp; |
| boolean renotify = false; |
| boolean silent = false; |
| boolean requireInteraction = false; |
| any data = null; |
| sequence<NotificationAction> actions = []; |
| }; |
| |
| enum NotificationPermission { |
| "default", |
| "denied", |
| "granted" |
| }; |
| |
| enum NotificationDirection { |
| "auto", |
| "ltr", |
| "rtl" |
| }; |
| |
| dictionary NotificationAction { |
| required DOMString action; |
| required DOMString title; |
| USVString icon; |
| }; |
| |
| callback NotificationPermissionCallback = void (NotificationPermission permission); |
| </script> |
| <script> |
| "use strict"; |
| var idlArray = new IdlArray(); |
| [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) { |
| if (node.className == "untested") { |
| idlArray.add_untested_idls(node.textContent); |
| } else { |
| idlArray.add_idls(node.textContent); |
| } |
| }); |
| idlArray.add_objects({ |
| Notification: ['new Notification("Running idlharness.")'], |
| }); |
| idlArray.test(); |
| </script> |