summaryrefslogtreecommitdiffstats
path: root/dom/media/mediacontrol/MediaController.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
commitfbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch)
tree4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /dom/media/mediacontrol/MediaController.cpp
parentReleasing progress-linux version 124.0.1-1~progress7.99u1. (diff)
downloadfirefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz
firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/media/mediacontrol/MediaController.cpp')
-rw-r--r--dom/media/mediacontrol/MediaController.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/dom/media/mediacontrol/MediaController.cpp b/dom/media/mediacontrol/MediaController.cpp
index bfb98f24c9..4290e952b0 100644
--- a/dom/media/mediacontrol/MediaController.cpp
+++ b/dom/media/mediacontrol/MediaController.cpp
@@ -186,9 +186,10 @@ bool MediaController::ShouldPropagateActionToAllContexts(
// These three actions have default action handler for each frame, so we
// need to propagate to all contexts. We would handle default handlers in
// `ContentMediaController::HandleMediaKey`.
- return aAction.mKey == MediaControlKey::Play ||
- aAction.mKey == MediaControlKey::Pause ||
- aAction.mKey == MediaControlKey::Stop;
+ return aAction.mKey.isSome() &&
+ (aAction.mKey.value() == MediaControlKey::Play ||
+ aAction.mKey.value() == MediaControlKey::Pause ||
+ aAction.mKey.value() == MediaControlKey::Stop);
}
void MediaController::UpdateMediaControlActionToContentMediaIfNeeded(
@@ -493,11 +494,16 @@ void MediaController::HandleSupportedMediaSessionActionsChanged(
MediaController_Binding::ClearCachedSupportedKeysValue(this);
}
-void MediaController::HandlePositionStateChanged(const PositionState& aState) {
+void MediaController::HandlePositionStateChanged(
+ const Maybe<PositionState>& aState) {
+ if (!aState) {
+ return;
+ }
+
PositionStateEventInit init;
- init.mDuration = aState.mDuration;
- init.mPlaybackRate = aState.mPlaybackRate;
- init.mPosition = aState.mLastReportedPlaybackPosition;
+ init.mDuration = aState->mDuration;
+ init.mPlaybackRate = aState->mPlaybackRate;
+ init.mPosition = aState->mLastReportedPlaybackPosition;
RefPtr<PositionStateEvent> event =
PositionStateEvent::Constructor(this, u"positionstatechange"_ns, init);
DispatchAsyncEvent(event.forget());