We are able to remove ServiceWorkerVisible and instead use ServiceWorkersEnabled in its place since we are no longer limiting where ServiceWorker instances are exposed. The correctness of ExtendableMessageEvent.source is addressed later in the stack. Although we enable skip-waiting-installed.https.html here, we also have to make it expected it will sometimes fail due to an inherent IPC race; bug 1926641 describes the situation. Differential Revision: https://phabricator.services.mozilla.com/D180914
62 lines
1.5 KiB
Plaintext
62 lines
1.5 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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 http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* The origin of this IDL file is
|
|
* https://w3c.github.io/push-api/
|
|
*/
|
|
|
|
interface Principal;
|
|
|
|
enum PushEncryptionKeyName
|
|
{
|
|
"p256dh",
|
|
"auth"
|
|
};
|
|
|
|
dictionary PushSubscriptionKeys
|
|
{
|
|
ByteString p256dh;
|
|
ByteString auth;
|
|
};
|
|
|
|
dictionary PushSubscriptionJSON
|
|
{
|
|
USVString endpoint;
|
|
// FIXME: bug 1493860: should this "= {}" be here? For that matter, this
|
|
// PushSubscriptionKeys thing is not even in the spec; "keys" is a record
|
|
// there.
|
|
PushSubscriptionKeys keys = {};
|
|
EpochTimeStamp? expirationTime;
|
|
};
|
|
|
|
dictionary PushSubscriptionInit
|
|
{
|
|
required USVString endpoint;
|
|
required USVString scope;
|
|
ArrayBuffer? p256dhKey = null;
|
|
ArrayBuffer? authSecret = null;
|
|
BufferSource? appServerKey = null;
|
|
EpochTimeStamp? expirationTime = null;
|
|
};
|
|
|
|
[Exposed=(Window,Worker), Func="ServiceWorkersEnabled"]
|
|
interface PushSubscription
|
|
{
|
|
[Throws, ChromeOnly]
|
|
constructor(PushSubscriptionInit initDict);
|
|
|
|
readonly attribute USVString endpoint;
|
|
readonly attribute PushSubscriptionOptions options;
|
|
readonly attribute EpochTimeStamp? expirationTime;
|
|
[Throws]
|
|
ArrayBuffer? getKey(PushEncryptionKeyName name);
|
|
[NewObject, UseCounter]
|
|
Promise<boolean> unsubscribe();
|
|
|
|
// Implements the custom serializer specified in Push API, section 9.
|
|
[Throws]
|
|
PushSubscriptionJSON toJSON();
|
|
};
|