Bug 1517711 - Guard other uses of SetPullingEnabled too. r=padenot

Depends on D15892

Differential Revision: https://phabricator.services.mozilla.com/D15896

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Andreas Pehrson 2019-01-08 10:06:08 +00:00
parent 72327b88f5
commit 6f2800844c
3 changed files with 19 additions and 6 deletions

View File

@ -4193,7 +4193,8 @@ SourceListener::InitializeAsync() {
state->mTrackEnabled = true;
state->mTrackEnabledTime = TimeStamp::Now();
if (state == mVideoDeviceState.get()) {
if (state == mVideoDeviceState.get() &&
!mStream->IsDestroyed()) {
mStream->SetPullingEnabled(kVideoTrack, true);
}
}

View File

@ -461,6 +461,9 @@ nsresult MediaEngineDefaultAudioSource::Start(
NS_DispatchToMainThread(
NS_NewRunnableFunction(__func__, [stream = mStream, track = mTrackID]() {
if (stream->IsDestroyed()) {
return;
}
stream->SetPullingEnabled(track, true);
}));
@ -484,6 +487,9 @@ nsresult MediaEngineDefaultAudioSource::Stop(
NS_DispatchToMainThread(
NS_NewRunnableFunction(__func__, [stream = mStream, track = mTrackID]() {
if (stream->IsDestroyed()) {
return;
}
stream->SetPullingEnabled(track, false);
}));
return NS_OK;

View File

@ -1475,16 +1475,22 @@ class GenericReceiveListener : public MediaStreamTrackListener {
}
void AddSelf() {
if (!mListening) {
mListening = true;
if (mListening) {
return;
}
mListening = true;
mMaybeTrackNeedsUnmute = true;
if (!mSource->IsDestroyed()) {
mSource->SetPullingEnabled(mTrackId, true);
mMaybeTrackNeedsUnmute = true;
}
}
void RemoveSelf() {
if (mListening) {
mListening = false;
if (!mListening) {
return;
}
mListening = false;
if (!mSource->IsDestroyed()) {
mSource->SetPullingEnabled(mTrackId, false);
}
}