summaryrefslogtreecommitdiffstats
path: root/dom/media/mediasession/MediaSession.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/mediasession/MediaSession.h')
-rw-r--r--dom/media/mediasession/MediaSession.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/dom/media/mediasession/MediaSession.h b/dom/media/mediasession/MediaSession.h
index db6864c842..6784fb531f 100644
--- a/dom/media/mediasession/MediaSession.h
+++ b/dom/media/mediasession/MediaSession.h
@@ -11,6 +11,7 @@
#include "mozilla/Attributes.h"
#include "mozilla/dom/MediaSessionBinding.h"
#include "mozilla/EnumeratedArray.h"
+#include "mozilla/TimeStamp.h"
#include "nsCycleCollectionParticipant.h"
#include "nsIDocumentActivity.h"
#include "nsWrapperCache.h"
@@ -29,13 +30,21 @@ class MediaMetadata;
struct PositionState {
PositionState() = default;
PositionState(double aDuration, double aPlaybackRate,
- double aLastReportedTime)
+ double aLastReportedTime, TimeStamp aPositionUpdatedTime)
: mDuration(aDuration),
mPlaybackRate(aPlaybackRate),
- mLastReportedPlaybackPosition(aLastReportedTime) {}
- double mDuration;
- double mPlaybackRate;
- double mLastReportedPlaybackPosition;
+ mLastReportedPlaybackPosition(aLastReportedTime),
+ mPositionUpdatedTime(aPositionUpdatedTime) {}
+
+ double mDuration = 0.0;
+ double mPlaybackRate = 0.0;
+ double mLastReportedPlaybackPosition = 0.0;
+ TimeStamp mPositionUpdatedTime;
+
+ // Returns the playback position in seconds (from 0 to mDuration)
+ // at the current time (aNow).
+ // https://w3c.github.io/mediasession/#current-playback-position
+ double CurrentPlaybackPosition(TimeStamp aNow = TimeStamp::Now()) const;
};
class MediaSession final : public nsIDocumentActivity, public nsWrapperCache {
@@ -111,8 +120,7 @@ class MediaSession final : public nsIDocumentActivity, public nsWrapperCache {
RefPtr<MediaMetadata> mMediaMetadata;
- EnumeratedArray<MediaSessionAction, MediaSessionAction::EndGuard_,
- RefPtr<MediaSessionActionHandler>>
+ EnumeratedArray<MediaSessionAction, RefPtr<MediaSessionActionHandler>>
mActionHandlers;
// This is used as is a hint for the user agent to determine whether the