// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://w3c.github.io/presentation-api/#interface-presentationconnection

enum PresentationConnectionState {
    "connected",
    "closed",
    "terminated"
};

[
    GarbageCollected,
    RuntimeEnabled=Presentation
] interface PresentationConnection : EventTarget {
    readonly attribute DOMString? id;
    readonly attribute PresentationConnectionState state;
    [MeasureAs=PresentationConnectionClose] void close();
    [MeasureAs=PresentationConnectionTerminate] void terminate();
    [DeprecateAs=PresentationConnectionStateChangeEventListener] attribute EventHandler onstatechange;
    attribute EventHandler onconnect;
    attribute EventHandler onclose;
    attribute EventHandler onterminate;

    // Communication
    attribute BinaryType binaryType;
    attribute EventHandler onmessage;
    [RaisesException, MeasureAs=PresentationConnectionSend] void send(DOMString message);
    [RaisesException, MeasureAs=PresentationConnectionSend] void send(Blob data);
    [RaisesException, MeasureAs=PresentationConnectionSend] void send(ArrayBuffer data);
    [RaisesException, MeasureAs=PresentationConnectionSend] void send(ArrayBufferView data);
};
