mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
62 lines
1.4 KiB
Text
62 lines
1.4 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 https://mozilla.org/MPL/2.0/. */
|
|
/*
|
|
* The origin of this IDL file is
|
|
* https://w3c.github.io/mediasession/#mediasession
|
|
*/
|
|
|
|
[Exposed=Window]
|
|
partial interface Navigator {
|
|
[SameObject] readonly attribute MediaSession mediaSession;
|
|
};
|
|
|
|
enum MediaSessionPlaybackState {
|
|
"none",
|
|
"paused",
|
|
"playing"
|
|
};
|
|
|
|
enum MediaSessionAction {
|
|
"play",
|
|
"pause",
|
|
"seekbackward",
|
|
"seekforward",
|
|
"previoustrack",
|
|
"nexttrack",
|
|
"skipad",
|
|
"stop",
|
|
"seekto"
|
|
};
|
|
|
|
dictionary MediaSessionActionDetails {
|
|
required MediaSessionAction action;
|
|
};
|
|
|
|
dictionary MediaSessionSeekActionDetails : MediaSessionActionDetails {
|
|
double? seekOffset;
|
|
};
|
|
|
|
dictionary MediaSessionSeekToActionDetails : MediaSessionActionDetails {
|
|
required double seekTime;
|
|
boolean? fastSeek;
|
|
};
|
|
|
|
dictionary MediaPositionState {
|
|
double duration;
|
|
double playbackRate;
|
|
double position;
|
|
};
|
|
|
|
callback MediaSessionActionHandler = undefined(/*MediaSessionActionDetails details*/);
|
|
|
|
[Exposed=Window]
|
|
interface MediaSession {
|
|
attribute MediaMetadata? metadata;
|
|
|
|
attribute MediaSessionPlaybackState playbackState;
|
|
|
|
undefined setActionHandler(MediaSessionAction action, MediaSessionActionHandler? handler);
|
|
|
|
[Throws] undefined setPositionState(optional MediaPositionState state = {});
|
|
};
|