dom/webidl/PushSubscription.webidl
author George Wright <george@mozilla.com>
Fri, 08 Apr 2016 13:33:27 -0400
changeset 317655 8d87452bfc44bf502e2a1a172db91f88e5284782
parent 316552 f07da9ef1c673e1c02d458e5a98feaf135e56df7
child 319551 296093225409c25a837753a753780d14ae20f965
permissions -rw-r--r--
Revert "Bug 1261416 - Rename firefox-plugin-container back to plugin-container to satisfy Flash's protected mode checks, and ensure that we launch the correct binary r=ted" because of widespread breakage due to whitelisted executable names in third parties This reverts commit 2d44e8ffaf63a32292f8e5b8fdd1485d0a462afc.

/* -*- 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;
  PushSubscriptionKeys keys;
};

[Exposed=(Window,Worker), Func="nsContentUtils::PushEnabled",
 ChromeConstructor(DOMString pushEndpoint, DOMString scope,
                   ArrayBuffer? key, ArrayBuffer? authSecret)]
interface PushSubscription
{
    readonly attribute USVString endpoint;
    ArrayBuffer? getKey(PushEncryptionKeyName name);
    [Throws, UseCounter]
    Promise<boolean> unsubscribe();

    // Implements the custom serializer specified in Push API, section 9.
    PushSubscriptionJSON toJSON();
};