diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:22:09 +0000 |
commit | 43a97878ce14b72f0981164f87f2e35e14151312 (patch) | |
tree | 620249daf56c0258faa40cbdcf9cfba06de2a846 /dom/chrome-webidl/MediaController.webidl | |
parent | Initial commit. (diff) | |
download | firefox-43a97878ce14b72f0981164f87f2e35e14151312.tar.xz firefox-43a97878ce14b72f0981164f87f2e35e14151312.zip |
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/chrome-webidl/MediaController.webidl')
-rw-r--r-- | dom/chrome-webidl/MediaController.webidl | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/dom/chrome-webidl/MediaController.webidl b/dom/chrome-webidl/MediaController.webidl new file mode 100644 index 0000000000..b16282877a --- /dev/null +++ b/dom/chrome-webidl/MediaController.webidl @@ -0,0 +1,75 @@ +/* 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 { + readonly attribute unsigned long long id; + readonly attribute boolean isActive; + readonly attribute boolean isAudible; + readonly attribute boolean isPlaying; + readonly attribute MediaSessionPlaybackState playbackState; + + [Throws] + MediaMetadataInit getMetadata(); + + [Frozen, Cached, Pure] + readonly attribute sequence<MediaControlKey> supportedKeys; + + attribute EventHandler onactivated; + attribute EventHandler ondeactivated; + + // Following events would only be dispatched after controller is active. + attribute EventHandler onmetadatachange; + attribute EventHandler onplaybackstatechange; + attribute EventHandler onpositionstatechange; + attribute EventHandler onsupportedkeyschange; + + undefined focus(); + undefined play(); + undefined pause(); + undefined stop(); + undefined prevTrack(); + undefined nextTrack(); + undefined seekBackward(); + undefined seekForward(); + undefined skipAd(); + undefined seekTo(double seekTime, optional boolean fastSeek = false); +}; + +[ChromeOnly,Exposed=Window,HeaderFile="mozilla/dom/MediaControlService.h"] +namespace MediaControlService { + // This is used to generate fake media control keys event in testing. + undefined generateMediaControlKey(MediaControlKey aKey); + + // This is used to get the media metadata from the current main controller in + // testing. + MediaMetadataInit getCurrentActiveMediaMetadata(); + + // This is used to get the actual media playback state from the current main + // controller in testing. + MediaSessionPlaybackState getCurrentMediaSessionPlaybackState(); +}; |