From 5a70c0ed787bde893033232450e695422ac0e78b Mon Sep 17 00:00:00 2001 From: alwu Date: Mon, 20 Apr 2020 15:59:06 +0000 Subject: [PATCH] Bug 1631075 - Clear the event source's metadata when we clear the main controller. r=bryce When we clear the main controller, which means there is no any media we need to control at that time, we would reset its playback state, but we should clear its metadata as well. Differential Revision: https://phabricator.services.mozilla.com/D71428 --- dom/media/mediacontrol/MediaControlService.cpp | 1 + dom/media/mediasession/MediaMetadata.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/dom/media/mediacontrol/MediaControlService.cpp b/dom/media/mediacontrol/MediaControlService.cpp index bee7eb58cadc..9f2a9d8f7ac7 100644 --- a/dom/media/mediacontrol/MediaControlService.cpp +++ b/dom/media/mediacontrol/MediaControlService.cpp @@ -339,6 +339,7 @@ void MediaControlService::ControllerManager::UpdateMainControllerInternal( if (!mMainController) { LOG_MAINCONTROLLER("Clear main controller"); mSource->SetPlaybackState(MediaSessionPlaybackState::None); + mSource->SetMediaMetadata(MediaMetadataBase::EmptyData()); } else { LOG_MAINCONTROLLER("Set controller %" PRId64 " as main controller", mMainController->Id()); diff --git a/dom/media/mediasession/MediaMetadata.h b/dom/media/mediasession/MediaMetadata.h index bfa75ca9e3c1..d4ec08f1b898 100644 --- a/dom/media/mediasession/MediaMetadata.h +++ b/dom/media/mediasession/MediaMetadata.h @@ -27,6 +27,8 @@ class MediaMetadataBase { const nsString& aAlbum) : mTitle(aTitle), mArtist(aArtist), mAlbum(aAlbum) {} + static MediaMetadataBase EmptyData() { return MediaMetadataBase(); } + nsString mTitle; nsString mArtist; nsString mAlbum;