mirror of
https://github.com/zen-browser/desktop.git
synced 2026-05-20 12:01:27 +00:00
39 lines
1.6 KiB
C++
39 lines
1.6 KiB
C++
diff --git a/dom/media/mediacontrol/MediaController.cpp b/dom/media/mediacontrol/MediaController.cpp
|
|
index f28ec5e406bfeefd624c9538878d423e99b0df6a..afb60df8ddec86c0c83584b8325add8d1c373d0e 100644
|
|
--- a/dom/media/mediacontrol/MediaController.cpp
|
|
+++ b/dom/media/mediacontrol/MediaController.cpp
|
|
@@ -49,6 +49,25 @@ void MediaController::GetSupportedKeys(
|
|
}
|
|
}
|
|
|
|
+void MediaController::GetPositionState(MediaControllerPositionState& aPositionState, ErrorResult& aRv) {
|
|
+ if (!IsActive() || mShutdown) {
|
|
+ LOG("Cannot get position state: controller is inactive or shut down");
|
|
+ aRv.Throw(NS_ERROR_NOT_AVAILABLE);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ Maybe<PositionState> currentPositionState = GetCurrentPositionState();
|
|
+ if (!currentPositionState) {
|
|
+ LOG("No position state available for controller %" PRId64, Id());
|
|
+ aRv.Throw(NS_ERROR_NOT_AVAILABLE);
|
|
+ return;
|
|
+ }
|
|
+
|
|
+ aPositionState.mDuration = currentPositionState->mDuration;
|
|
+ aPositionState.mPosition = currentPositionState->mLastReportedPlaybackPosition;
|
|
+ aPositionState.mPlaybackRate = currentPositionState->mPlaybackRate;
|
|
+}
|
|
+
|
|
void MediaController::GetMetadata(MediaMetadataInit& aMetadata,
|
|
ErrorResult& aRv) {
|
|
if (!IsActive() || mShutdown) {
|
|
@@ -435,6 +454,7 @@ void MediaController::SetIsInPictureInPictureMode(
|
|
ForceToBecomeMainControllerIfNeeded();
|
|
UpdateDeactivationTimerIfNeeded();
|
|
mPictureInPictureModeChangedEvent.Notify(mIsInPictureInPictureMode);
|
|
+ DispatchAsyncEvent(u"pictureinpicturemodechange"_ns);
|
|
}
|
|
|
|
void MediaController::NotifyMediaFullScreenState(uint64_t aBrowsingContextId,
|