[webkitcorepy] Add a NullHandler to logger
[WebKit-https.git] / Source / WebCore / Modules / notifications / Notification.idl
1 /*
2  * Copyright (C) 2009 Google Inc. All rights reserved.
3  * Copyright (C) 2011, 2012 Apple Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  *     * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *     * Redistributions in binary form must reproduce the above
12  * copyright notice, this list of conditions and the following disclaimer
13  * in the documentation and/or other materials provided with the
14  * distribution.
15  *     * Neither the name of Google Inc. nor the names of its
16  * contributors may be used to endorse or promote products derived from
17  * this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31
32 [
33     Conditional=NOTIFICATIONS,
34     ActiveDOMObject,
35     ExportMacro=WEBCORE_EXPORT,
36 ] interface Notification : EventTarget {
37     [CallWith=Document] constructor(DOMString title, optional NotificationOptions options);
38
39     [CallWith=Document] static readonly attribute NotificationPermission permission;
40     [CallWith=Document] static void requestPermission(optional NotificationPermissionCallback? deprecatedCallback); // FIXME: This should return a Promise<NotificationPermission>.
41
42     // static readonly attribute unsigned long maxActions;
43
44     attribute EventHandler onclick;
45     attribute EventHandler onerror;
46
47     readonly attribute DOMString title;
48     readonly attribute NotificationDirection dir;
49     readonly attribute DOMString lang;
50     readonly attribute DOMString body;
51     readonly attribute DOMString tag;
52     // readonly attribute USVString image;
53     readonly attribute USVString icon;
54     // readonly attribute USVString badge;
55     // readonly attribute USVString sound;
56     // [SameObject] readonly attribute FrozenArray<unsigned long> vibrate;
57     // readonly attribute DOMTimeStamp timestamp;
58     // readonly attribute boolean renotify;
59     // readonly attribute boolean silent;
60     // readonly attribute boolean requireInteraction;
61     // [SameObject] readonly attribute any data;
62     // [SameObject] readonly attribute FrozenArray<NotificationAction> actions;
63
64     void close();
65
66     // Legacy. Not in the specification.
67     void show();
68
69     attribute EventHandler onclose;
70     [ImplementedAs=onshow] attribute EventHandler ondisplay;
71     attribute EventHandler onshow;
72 };
73
74 [
75     Conditional=NOTIFICATIONS
76 ] dictionary NotificationOptions {
77     NotificationDirection dir = "auto";
78     DOMString lang = "";
79     DOMString body = "";
80     DOMString tag = "";
81     // USVString image;
82     USVString icon;
83     // USVString badge;
84     // USVString sound;
85     // VibratePattern vibrate;
86     // DOMTimeStamp timestamp;
87     // boolean renotify = false;
88     // boolean silent = false;
89     // boolean requireInteraction = false;
90     // any data = null;
91     // sequence<NotificationAction> actions = [];
92 };
93
94 [
95     Conditional=NOTIFICATIONS
96 ] enum NotificationDirection {
97     "auto",
98     "ltr",
99     "rtl"
100 };