fune/dom/chrome-webidl/MediaController.webidl
alwu 1493d7798d Bug 1621403 - part2 : implement seekto action. r=chunmin,emilio
Implement `Seekto` action [1]. In addtion, as `seekto` can go with additional properties, we create a new structure `MediaControlAction` to wrap `MediaControlKey` and `SeekDetails`, which can be sent with `seekto`.

[1] https://w3c.github.io/mediasession/#dom-mediasessionaction-seekto

Differential Revision: https://phabricator.services.mozilla.com/D82816
2020-07-16 00:16:33 +00:00

40 lines
1.1 KiB
Text

/* 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/.
*/
/**
* This enum lists all supported behaviors on the media controller.
*/
enum MediaControlKey {
"focus",
"play",
"pause",
"playpause",
"previoustrack",
"nexttrack",
"seekbackward",
"seekforward",
"skipad",
"seekto",
"stop",
};
/**
* MediaController is used to control media playback for a tab, and each tab
* would only have one media controller, which can be accessed from the
* canonical browsing context.
*/
[Exposed=Window, ChromeOnly]
interface MediaController : EventTarget {
[Frozen, Cached, Pure]
readonly attribute sequence<MediaControlKey> supportedKeys;
attribute EventHandler onpositionstatechange;
attribute EventHandler onsupportedkeyschange;
// TODO : expose other media controller methods to webidl in order to support
// the plan of controlling media directly from the chrome JS.
// eg. play(), pause().
void seekTo(double seekTime, optional boolean fastSeek = false);
};