зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1317670 Part 1 - r=jib
This commit is contained in:
Родитель
8a8904b1c0
Коммит
2c33546190
|
@ -2696,6 +2696,7 @@ MediaManager::OnNavigation(uint64_t aWindowID)
|
|||
void
|
||||
MediaManager::RemoveMediaDevicesCallback(uint64_t aWindowID)
|
||||
{
|
||||
MutexAutoLock lock(mCallbackMutex);
|
||||
for (DeviceChangeCallback* observer : mDeviceChangeCallbackList)
|
||||
{
|
||||
dom::MediaDevices* mediadevices = static_cast<dom::MediaDevices *>(observer);
|
||||
|
@ -2704,7 +2705,7 @@ MediaManager::RemoveMediaDevicesCallback(uint64_t aWindowID)
|
|||
nsPIDOMWindowInner* window = mediadevices->GetOwner();
|
||||
MOZ_ASSERT(window);
|
||||
if (window && window->WindowID() == aWindowID) {
|
||||
DeviceChangeCallback::RemoveDeviceChangeCallback(observer);
|
||||
DeviceChangeCallback::RemoveDeviceChangeCallbackLocked(observer);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,12 @@ public:
|
|||
virtual int RemoveDeviceChangeCallback(DeviceChangeCallback* aCallback)
|
||||
{
|
||||
MutexAutoLock lock(mCallbackMutex);
|
||||
return RemoveDeviceChangeCallbackLocked(aCallback);
|
||||
}
|
||||
|
||||
virtual int RemoveDeviceChangeCallbackLocked(DeviceChangeCallback* aCallback)
|
||||
{
|
||||
mCallbackMutex.AssertCurrentThreadOwns();
|
||||
if (mDeviceChangeCallbackList.IndexOf(aCallback) != mDeviceChangeCallbackList.NoIndex)
|
||||
mDeviceChangeCallbackList.RemoveElement(aCallback);
|
||||
return 0;
|
||||
|
@ -39,12 +45,10 @@ public:
|
|||
|
||||
DeviceChangeCallback() : mCallbackMutex("mozilla::media::DeviceChangeCallback::mCallbackMutex")
|
||||
{
|
||||
mDeviceChangeCallbackList.Clear();
|
||||
}
|
||||
|
||||
virtual ~DeviceChangeCallback()
|
||||
{
|
||||
mDeviceChangeCallbackList.Clear();
|
||||
}
|
||||
|
||||
protected:
|
||||
|
|
Загрузка…
Ссылка в новой задаче