Bug 1434600 - Clean up the MediaEngineWebRTC*Source when navigating away from a document. r?pehrsons
MozReview-Commit-ID: 4XXJ6fcdV9G
--- a/dom/media/MediaManager.cpp
+++ b/dom/media/MediaManager.cpp
@@ -3138,16 +3138,21 @@ MediaManager::OnNavigation(uint64_t aWin
if (window) {
IterateWindowListeners(window->AsInner(), StopSharingCallback, nullptr);
} else {
RemoveWindowID(aWindowID);
}
MOZ_ASSERT(!GetWindowListener(aWindowID));
RemoveMediaDevicesCallback(aWindowID);
+
+ RefPtr<MediaManager> self = this;
+ MediaManager::PostTask(NewTaskFrom([self, aWindowID]() {
+ self->GetBackend()->ReleaseResourcesForWindow(aWindowID);
+ }));
}
void
MediaManager::RemoveMediaDevicesCallback(uint64_t aWindowID)
{
MutexAutoLock lock(mCallbackMutex);
for (DeviceChangeCallback* observer : mDeviceChangeCallbackList)
{