Bug 1434600 - Clean up the MediaEngineWebRTC*Source when navigating away from a document. r?pehrsons draft
authorPaul Adenot <paul@paul.cx>
Wed, 31 Jan 2018 19:03:39 +0100
changeset 751489 6d3450ae866f67fe56110b0890c93a55d7ce53cd
parent 751488 fe9e8433a4dd499ccd3267c02823f6d9cc19b504
push id97980
push userpaul@paul.cx
push dateTue, 06 Feb 2018 12:49:29 +0000
reviewerspehrsons
bugs1434600
milestone60.0a1
Bug 1434600 - Clean up the MediaEngineWebRTC*Source when navigating away from a document. r?pehrsons MozReview-Commit-ID: 4XXJ6fcdV9G
dom/media/MediaManager.cpp
--- 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)
   {