mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
* feat: add Notification Web API binding Signed-off-by: Jason Tsai <git@pews.dev> * chore: update spec link Signed-off-by: Jason Tsai <git@pews.dev> * chore: fix clippy Signed-off-by: Jason Tsai <git@pews.dev> * fix: index overflow Signed-off-by: Jason Tsai <git@pews.dev> * test(tidy): add notification WebIDL standard URL Signed-off-by: Jason Tsai <git@pews.dev> * fix: allow crown::unrooted_must_root Signed-off-by: Jason Tsai <git@pews.dev> * implement GetPermission Signed-off-by: Jason Tsai <git@pews.dev> * fix silent type Signed-off-by: Jason Tsai <git@pews.dev> * add all properties Signed-off-by: Jason Tsai <git@pews.dev> * test: add Notification to global Signed-off-by: Jason Tsai <git@pews.dev> * chore: update wpt manifest and fix clippy Signed-off-by: Jason Tsai <git@pews.dev> * test: temp skip notifications Signed-off-by: Jason Tsai <git@pews.dev> * add vibration and apply suggestions Signed-off-by: Jason Tsai <git@pews.dev> * partially implement RequestPermission Signed-off-by: Jason Tsai <git@pews.dev> * call Permission request permission algorithm Signed-off-by: Jason Tsai <git@pews.dev> * chore: pub crate Notification Signed-off-by: Jason Tsai <git@pews.dev> * chore: fix clippy Signed-off-by: Jason Tsai <git@pews.dev> * chore: crown attribute Signed-off-by: Jason Tsai <git@pews.dev> * fix part of suggestions Signed-off-by: Jason Tsai <git@pews.dev> * fix: store private `Action` structure Signed-off-by: Jason Tsai <git@pews.dev> * chore: fix typo Signed-off-by: Jason Tsai <git@pews.dev> * fix: serialize images URL Signed-off-by: Jason Tsai <git@pews.dev> * fix: use globalscope as environment settings object Signed-off-by: Jason Tsai <git@pews.dev> * chore: add pref `dom_notification_enabled` and default to disabled Signed-off-by: Jason Tsai <git@pews.dev> * fix: use `descriptor_permission_state` Signed-off-by: Jason Tsai <git@pews.dev> * apply suggestions Signed-off-by: Jason Tsai <git@pews.dev> Co-authored-by: Josh Matthews <josh@joshmatthews.net> * test: remove passed meta Signed-off-by: Jason Tsai <git@pews.dev> * test: enable notification prefs in mozilla tests Signed-off-by: Jason Tsai <git@pews.dev> --------- Signed-off-by: Jason Tsai <git@pews.dev> Co-authored-by: Josh Matthews <josh@joshmatthews.net>
113 lines
2.6 KiB
Text
113 lines
2.6 KiB
Text
/* 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 https://mozilla.org/MPL/2.0/. */
|
|
|
|
// https://notifications.spec.whatwg.org/#api
|
|
[Exposed=(Window,Worker), Pref="dom_notification_enabled"]
|
|
interface Notification : EventTarget {
|
|
[Throws]
|
|
constructor(DOMString title, optional NotificationOptions options = {});
|
|
|
|
[GetterThrows]
|
|
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;
|
|
|
|
[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 USVString image;
|
|
|
|
[Pure]
|
|
readonly attribute USVString icon;
|
|
|
|
[Pure]
|
|
readonly attribute USVString badge;
|
|
|
|
readonly attribute boolean renotify;
|
|
|
|
[Constant]
|
|
readonly attribute boolean requireInteraction;
|
|
|
|
[Constant]
|
|
readonly attribute boolean? silent;
|
|
|
|
// [Cached, Frozen, Pure]
|
|
readonly attribute /*FrozenArray<<unsigned long>*/any vibrate;
|
|
|
|
readonly attribute EpochTimeStamp timestamp;
|
|
|
|
[Constant]
|
|
readonly attribute any data;
|
|
|
|
// [Cached, Frozen, Pure]
|
|
readonly attribute /*FrozenArray<NotificationAction>*/any actions;
|
|
|
|
undefined close();
|
|
};
|
|
|
|
// <https://w3c.github.io/hr-time/#dom-epochtimestamp>
|
|
typedef unsigned long long EpochTimeStamp;
|
|
typedef (unsigned long or sequence<unsigned long>) VibratePattern;
|
|
|
|
dictionary NotificationOptions {
|
|
NotificationDirection dir = "auto";
|
|
DOMString lang = "";
|
|
DOMString body = "";
|
|
DOMString tag = "";
|
|
USVString image;
|
|
USVString icon;
|
|
USVString badge;
|
|
VibratePattern vibrate;
|
|
EpochTimeStamp timestamp;
|
|
boolean renotify = false;
|
|
boolean? silent = null;
|
|
boolean requireInteraction = false;
|
|
any data = null;
|
|
sequence<NotificationAction> actions = [];
|
|
};
|
|
|
|
dictionary GetNotificationOptions {
|
|
DOMString tag = "";
|
|
};
|
|
|
|
enum NotificationPermission {
|
|
"default",
|
|
"denied",
|
|
"granted"
|
|
};
|
|
|
|
callback NotificationPermissionCallback = undefined (NotificationPermission permission);
|
|
|
|
enum NotificationDirection {
|
|
"auto",
|
|
"ltr",
|
|
"rtl"
|
|
};
|
|
|
|
dictionary NotificationAction {
|
|
required DOMString action;
|
|
required DOMString title;
|
|
USVString icon;
|
|
};
|