chromium/third_party/blink/renderer/modules/remoteplayback/remote_playback.idl

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

// https://w3c.github.io/remote-playback/#idl-def-remoteplayback

enum RemotePlaybackState {
    "connecting",
    "connected",
    "disconnected"
};

callback RemotePlaybackAvailabilityCallback = void(boolean available);

[
    Exposed=Window,
    ActiveScriptWrappable,
    RuntimeEnabled=RemotePlayback
] interface RemotePlayback : EventTarget {
    readonly attribute RemotePlaybackState state;
    attribute EventHandler onconnecting;
    attribute EventHandler onconnect;
    attribute EventHandler ondisconnect;

    [Measure, CallWith=ScriptState,RaisesException] Promise<long> watchAvailability(RemotePlaybackAvailabilityCallback callback);
    [CallWith=ScriptState,RaisesException] Promise<undefined> cancelWatchAvailability(optional long id);
    [Measure, CallWith=ScriptState,RaisesException] Promise<undefined> prompt();
};