summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/interfaces/push-api.idl
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/interfaces/push-api.idl')
-rw-r--r--testing/web-platform/tests/interfaces/push-api.idl93
1 files changed, 93 insertions, 0 deletions
diff --git a/testing/web-platform/tests/interfaces/push-api.idl b/testing/web-platform/tests/interfaces/push-api.idl
new file mode 100644
index 0000000000..f582788806
--- /dev/null
+++ b/testing/web-platform/tests/interfaces/push-api.idl
@@ -0,0 +1,93 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: Push API (https://w3c.github.io/push-api/)
+
+dictionary PushPermissionDescriptor : PermissionDescriptor {
+ boolean userVisibleOnly = false;
+};
+
+[SecureContext]
+partial interface ServiceWorkerRegistration {
+ readonly attribute PushManager pushManager;
+};
+
+[Exposed=(Window,Worker), SecureContext]
+interface PushManager {
+ [SameObject] static readonly attribute FrozenArray<DOMString> supportedContentEncodings;
+
+ Promise<PushSubscription> subscribe(optional PushSubscriptionOptionsInit options = {});
+ Promise<PushSubscription?> getSubscription();
+ Promise<PermissionState> permissionState(optional PushSubscriptionOptionsInit options = {});
+};
+
+[Exposed=(Window,Worker), SecureContext]
+interface PushSubscriptionOptions {
+ readonly attribute boolean userVisibleOnly;
+ [SameObject] readonly attribute ArrayBuffer? applicationServerKey;
+};
+
+dictionary PushSubscriptionOptionsInit {
+ boolean userVisibleOnly = false;
+ (BufferSource or DOMString)? applicationServerKey = null;
+};
+
+[Exposed=(Window,Worker), SecureContext]
+interface PushSubscription {
+ readonly attribute USVString endpoint;
+ readonly attribute EpochTimeStamp? expirationTime;
+ [SameObject] readonly attribute PushSubscriptionOptions options;
+ ArrayBuffer? getKey(PushEncryptionKeyName name);
+ Promise<boolean> unsubscribe();
+
+ PushSubscriptionJSON toJSON();
+};
+
+dictionary PushSubscriptionJSON {
+ USVString endpoint;
+ EpochTimeStamp? expirationTime = null;
+ record<DOMString, USVString> keys;
+};
+
+enum PushEncryptionKeyName {
+ "p256dh",
+ "auth"
+};
+
+[Exposed=ServiceWorker, SecureContext]
+interface PushMessageData {
+ ArrayBuffer arrayBuffer();
+ Blob blob();
+ any json();
+ USVString text();
+};
+
+[Exposed=ServiceWorker, SecureContext]
+partial interface ServiceWorkerGlobalScope {
+ attribute EventHandler onpush;
+ attribute EventHandler onpushsubscriptionchange;
+};
+
+[Exposed=ServiceWorker, SecureContext]
+interface PushEvent : ExtendableEvent {
+ constructor(DOMString type, optional PushEventInit eventInitDict = {});
+ readonly attribute PushMessageData? data;
+};
+
+typedef (BufferSource or USVString) PushMessageDataInit;
+
+dictionary PushEventInit : ExtendableEventInit {
+ PushMessageDataInit data;
+};
+
+[Exposed=ServiceWorker, SecureContext]
+interface PushSubscriptionChangeEvent : ExtendableEvent {
+ constructor(DOMString type, optional PushSubscriptionChangeEventInit eventInitDict = {});
+ readonly attribute PushSubscription? newSubscription;
+ readonly attribute PushSubscription? oldSubscription;
+};
+
+dictionary PushSubscriptionChangeEventInit : ExtendableEventInit {
+ PushSubscription newSubscription = null;
+ PushSubscription oldSubscription = null;
+};