Fix bug in Windows SMTC

This commit is contained in:
ownedbywuigi 2026-04-03 10:32:27 +01:00
commit a21f2f8be3
3 changed files with 36 additions and 0 deletions

View file

@ -1869,6 +1869,8 @@ function updateWindowsSMTCMetadataFromTab(aTab, aPlaying) {
uiUtils.setSMTCMetadata(title, artist, album);
if (thumbnailURL) {
uiUtils.setSMTCThumbnailURL(thumbnailURL);
} else {
uiUtils.clearSMTCThumbnail();
}
uiUtils.setSMTCPlaybackState(!!aPlaying);
gLastSMTCMediaTab = tab;

View file

@ -41,6 +41,12 @@ interface nsIWindowsUIUtils : nsISupports
*/
void setSMTCThumbnailURL(in AString aThumbnailURL);
/**
* Clear native Windows System Media Transport Controls artwork.
* No-op on unsupported Windows versions.
*/
void clearSMTCThumbnail();
/**
* Clear native Windows System Media Transport Controls metadata.
* No-op on unsupported Windows versions.

View file

@ -494,6 +494,34 @@ WindowsUIUtils::SetSMTCThumbnailURL(const nsAString& aThumbnailURL)
return NS_OK;
}
NS_IMETHODIMP
WindowsUIUtils::ClearSMTCThumbnail()
{
#ifndef __MINGW32__
if (!IsWin10OrLater()) {
return NS_OK;
}
nsresult rv = EnsureSMTC();
if (NS_FAILED(rv)) {
return NS_OK;
}
if (!gSMTC) {
return NS_OK;
}
ComPtr<ISystemMediaTransportControlsDisplayUpdater> updater;
HRESULT hr = gSMTC->get_DisplayUpdater(&updater);
if (FAILED(hr) || !updater) {
return NS_OK;
}
updater->put_Thumbnail(nullptr);
updater->Update();
#endif
return NS_OK;
}
NS_IMETHODIMP
WindowsUIUtils::ClearSMTCMetadata()
{