зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1513638 - Rename DispatchToMainThreadAfterStreamStateUpdate to DispatchToMainThreadStableState. r=jya,karlt
Differential Revision: https://phabricator.services.mozilla.com/D14421 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
8dec05474b
Коммит
88cb071d63
|
@ -77,7 +77,7 @@ class OutputStreamDriver::TrackListener : public MediaStreamTrackListener {
|
|||
void NotifyEnded() override {
|
||||
Forget();
|
||||
|
||||
mSourceStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
mSourceStream->Graph()->DispatchToMainThreadStableState(
|
||||
NS_NewRunnableFunction(
|
||||
"OutputStreamDriver::TrackListener::RemoveTrackListener",
|
||||
[self = RefPtr<TrackListener>(this), this]() {
|
||||
|
|
|
@ -345,7 +345,7 @@ already_AddRefed<Promise> DOMMediaStream::CountUnderlyingStreams(
|
|||
void Run() override {
|
||||
uint32_t streams =
|
||||
mGraph->mStreams.Length() + mGraph->mSuspendedStreams.Length();
|
||||
mGraph->DispatchToMainThreadAfterStreamStateUpdate(NS_NewRunnableFunction(
|
||||
mGraph->DispatchToMainThreadStableState(NS_NewRunnableFunction(
|
||||
"DOMMediaStream::CountUnderlyingStreams (stable state)",
|
||||
[promise = std::move(mPromise), streams]() mutable {
|
||||
NS_DispatchToMainThread(NS_NewRunnableFunction(
|
||||
|
|
|
@ -1149,10 +1149,10 @@ class GetUserMediaStreamRunnable : public Runnable {
|
|||
LOG("Returning success for getUserMedia()");
|
||||
mHolder.Resolve(RefPtr<DOMMediaStream>(mStream), __func__);
|
||||
});
|
||||
// DispatchToMainThreadAfterStreamStateUpdate will make the runnable run
|
||||
// DispatchToMainThreadStableState will make the runnable run
|
||||
// in stable state. But since the runnable runs JS we need to make a
|
||||
// double dispatch.
|
||||
mGraph->DispatchToMainThreadAfterStreamStateUpdate(NS_NewRunnableFunction(
|
||||
mGraph->DispatchToMainThreadStableState(NS_NewRunnableFunction(
|
||||
"TracksCreatedListener::NotifyOutput Stable State Notifier",
|
||||
[graph = mGraph, r = std::move(r)]() mutable {
|
||||
graph->Dispatch(r.forget());
|
||||
|
|
|
@ -2353,8 +2353,7 @@ void MediaStream::RunAfterPendingUpdates(
|
|||
Message(MediaStream* aStream, already_AddRefed<nsIRunnable> aRunnable)
|
||||
: ControlMessage(aStream), mRunnable(aRunnable) {}
|
||||
void Run() override {
|
||||
mStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
mRunnable.forget());
|
||||
mStream->Graph()->DispatchToMainThreadStableState(mRunnable.forget());
|
||||
}
|
||||
void RunDuringShutdown() override {
|
||||
// Don't run mRunnable now as it may call AppendMessage() which would
|
||||
|
@ -3025,8 +3024,7 @@ RefPtr<GenericPromise> MediaInputPort::BlockSourceTrackId(
|
|||
void Run() override {
|
||||
mPort->BlockSourceTrackIdImpl(mTrackId, mBlockingMode);
|
||||
if (mRunnable) {
|
||||
mStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
mRunnable.forget());
|
||||
mStream->Graph()->DispatchToMainThreadStableState(mRunnable.forget());
|
||||
}
|
||||
}
|
||||
void RunDuringShutdown() override { Run(); }
|
||||
|
@ -3816,7 +3814,7 @@ already_AddRefed<MediaInputPort> MediaStreamGraphImpl::ConnectToCaptureStream(
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
void MediaStreamGraph::DispatchToMainThreadAfterStreamStateUpdate(
|
||||
void MediaStreamGraph::DispatchToMainThreadStableState(
|
||||
already_AddRefed<nsIRunnable> aRunnable) {
|
||||
AssertOnGraphThreadOrNotRunning();
|
||||
*static_cast<MediaStreamGraphImpl*>(this)
|
||||
|
|
|
@ -149,8 +149,7 @@ class AudioDataListener : public AudioDataListenerInterface {
|
|||
* These methods are called with the media graph monitor held, so
|
||||
* reentry into general media graph methods is not possible.
|
||||
* You should do something non-blocking and non-reentrant (e.g. dispatch an
|
||||
* event) and return. DispatchFromMainThreadAfterNextStreamStateUpdate
|
||||
* would be a good choice.
|
||||
* event) and return. NS_DispatchToCurrentThread would be a good choice.
|
||||
* The listener is allowed to synchronously remove itself from the stream, but
|
||||
* not add or remove any other listeners.
|
||||
*/
|
||||
|
@ -1286,7 +1285,7 @@ class MediaStreamGraph {
|
|||
/**
|
||||
* Media graph thread only.
|
||||
* Dispatches a runnable that will run on the main thread after all
|
||||
* main-thread stream state has been next updated.
|
||||
* main-thread stream state has been updated, i.e., during stable state.
|
||||
*
|
||||
* Should only be called during MediaStreamTrackListener callbacks or during
|
||||
* ProcessedMediaStream::ProcessInput().
|
||||
|
@ -1294,8 +1293,7 @@ class MediaStreamGraph {
|
|||
* Note that if called during shutdown the runnable will be ignored and
|
||||
* released on main thread.
|
||||
*/
|
||||
void DispatchToMainThreadAfterStreamStateUpdate(
|
||||
already_AddRefed<nsIRunnable> aRunnable);
|
||||
void DispatchToMainThreadStableState(already_AddRefed<nsIRunnable> aRunnable);
|
||||
|
||||
/**
|
||||
* Returns graph sample rate in Hz.
|
||||
|
|
|
@ -96,7 +96,7 @@ class MediaStreamTrack::MSGListener : public MediaStreamTrackListener {
|
|||
void NotifyPrincipalHandleChanged(
|
||||
MediaStreamGraph* aGraph,
|
||||
const PrincipalHandle& aNewPrincipalHandle) override {
|
||||
mGraph->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
mGraph->DispatchToMainThreadStableState(
|
||||
NewRunnableMethod<StoreCopyPassByConstLRef<PrincipalHandle>>(
|
||||
"dom::MediaStreamTrack::MSGListener::"
|
||||
"DoNotifyPrincipalHandleChanged",
|
||||
|
@ -108,7 +108,7 @@ class MediaStreamTrack::MSGListener : public MediaStreamTrackListener {
|
|||
// `mTrack` is a WeakPtr and must be destroyed on main thread.
|
||||
// We dispatch ourselves to main thread here in case the MediaStreamGraph
|
||||
// is holding the last reference to us.
|
||||
mGraph->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
mGraph->DispatchToMainThreadStableState(
|
||||
NS_NewRunnableFunction("MediaStreamTrack::MSGListener::mTrackReleaser",
|
||||
[self = RefPtr<MSGListener>(this)]() {}));
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ class MediaStreamTrack::MSGListener : public MediaStreamTrackListener {
|
|||
}
|
||||
|
||||
void NotifyEnded() override {
|
||||
mGraph->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
mGraph->DispatchToMainThreadStableState(
|
||||
NewRunnableMethod("MediaStreamTrack::MSGListener::DoNotifyEnded", this,
|
||||
&MSGListener::DoNotifyEnded));
|
||||
}
|
||||
|
|
|
@ -161,7 +161,7 @@ void DecodedStreamTrackListener::NotifyOutput(MediaStreamGraph* aGraph,
|
|||
}
|
||||
|
||||
void DecodedStreamTrackListener::NotifyEnded() {
|
||||
mStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
mStream->Graph()->DispatchToMainThreadStableState(
|
||||
NewRunnableMethod<mozilla::TrackID>(
|
||||
"DecodedStreamGraphListener::DoNotifyTrackEnded", mGraphListener,
|
||||
&DecodedStreamGraphListener::DoNotifyTrackEnded, mTrackID));
|
||||
|
|
|
@ -252,9 +252,8 @@ class DestinationNodeEngine final : public AudioNodeEngine {
|
|||
}
|
||||
};
|
||||
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
NS_NewRunnableFunction("dom::WebAudioAudibleStateChangedRunnable",
|
||||
r));
|
||||
aStream->Graph()->DispatchToMainThreadStableState(NS_NewRunnableFunction(
|
||||
"dom::WebAudioAudibleStateChangedRunnable", r));
|
||||
}
|
||||
|
||||
if (isInputAudible) {
|
||||
|
|
|
@ -140,7 +140,7 @@ class BiquadFilterNodeEngine final : public AudioNodeEngine {
|
|||
RefPtr<PlayingRefChangeHandler> refchanged =
|
||||
new PlayingRefChangeHandler(aStream,
|
||||
PlayingRefChangeHandler::RELEASE);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
aStream->Graph()->DispatchToMainThreadStableState(
|
||||
refchanged.forget());
|
||||
}
|
||||
|
||||
|
@ -155,8 +155,7 @@ class BiquadFilterNodeEngine final : public AudioNodeEngine {
|
|||
RefPtr<PlayingRefChangeHandler> refchanged =
|
||||
new PlayingRefChangeHandler(aStream,
|
||||
PlayingRefChangeHandler::ADDREF);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
refchanged.forget());
|
||||
aStream->Graph()->DispatchToMainThreadStableState(refchanged.forget());
|
||||
} else { // Help people diagnose bug 924718
|
||||
WebAudioUtils::LogToDeveloperConsole(
|
||||
mWindowID, "BiquadFilterChannelCountChangeWarning");
|
||||
|
|
|
@ -241,8 +241,7 @@ void ConvolverNodeEngine::ProcessBlock(AudioNodeStream* aStream,
|
|||
aStream->ScheduleCheckForInactive();
|
||||
RefPtr<PlayingRefChanged> refchanged =
|
||||
new PlayingRefChanged(aStream, PlayingRefChanged::RELEASE);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
refchanged.forget());
|
||||
aStream->Graph()->DispatchToMainThreadStableState(refchanged.forget());
|
||||
}
|
||||
aOutput->SetNull(WEBAUDIO_BLOCK_SIZE);
|
||||
return;
|
||||
|
@ -251,8 +250,7 @@ void ConvolverNodeEngine::ProcessBlock(AudioNodeStream* aStream,
|
|||
if (mRemainingLeftOutput <= 0) {
|
||||
RefPtr<PlayingRefChanged> refchanged =
|
||||
new PlayingRefChanged(aStream, PlayingRefChanged::ADDREF);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
refchanged.forget());
|
||||
aStream->Graph()->DispatchToMainThreadStableState(refchanged.forget());
|
||||
}
|
||||
|
||||
// Use mVolume as a flag to detect whether AllocateReverbInput() gets
|
||||
|
|
|
@ -71,8 +71,7 @@ class DelayNodeEngine final : public AudioNodeEngine {
|
|||
if (mLeftOverData <= 0) {
|
||||
RefPtr<PlayingRefChanged> refchanged =
|
||||
new PlayingRefChanged(aStream, PlayingRefChanged::ADDREF);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
refchanged.forget());
|
||||
aStream->Graph()->DispatchToMainThreadStableState(refchanged.forget());
|
||||
}
|
||||
mLeftOverData = mBuffer.MaxDelayTicks();
|
||||
} else if (mLeftOverData > 0) {
|
||||
|
@ -87,8 +86,7 @@ class DelayNodeEngine final : public AudioNodeEngine {
|
|||
|
||||
RefPtr<PlayingRefChanged> refchanged =
|
||||
new PlayingRefChanged(aStream, PlayingRefChanged::RELEASE);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
refchanged.forget());
|
||||
aStream->Graph()->DispatchToMainThreadStableState(refchanged.forget());
|
||||
}
|
||||
aOutput->SetNull(WEBAUDIO_BLOCK_SIZE);
|
||||
return;
|
||||
|
|
|
@ -50,7 +50,7 @@ class IIRFilterNodeEngine final : public AudioNodeEngine {
|
|||
RefPtr<PlayingRefChangeHandler> refchanged =
|
||||
new PlayingRefChangeHandler(aStream,
|
||||
PlayingRefChangeHandler::RELEASE);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
aStream->Graph()->DispatchToMainThreadStableState(
|
||||
refchanged.forget());
|
||||
|
||||
aOutput->SetNull(WEBAUDIO_BLOCK_SIZE);
|
||||
|
@ -64,8 +64,7 @@ class IIRFilterNodeEngine final : public AudioNodeEngine {
|
|||
RefPtr<PlayingRefChangeHandler> refchanged =
|
||||
new PlayingRefChangeHandler(aStream,
|
||||
PlayingRefChangeHandler::ADDREF);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
refchanged.forget());
|
||||
aStream->Graph()->DispatchToMainThreadStableState(refchanged.forget());
|
||||
} else {
|
||||
WebAudioUtils::LogToDeveloperConsole(
|
||||
mWindowID, "IIRFilterChannelCountChangeWarning");
|
||||
|
|
|
@ -205,7 +205,7 @@ class PannerNodeEngine final : public AudioNodeEngine {
|
|||
RefPtr<PlayingRefChangeHandler> refchanged =
|
||||
new PlayingRefChangeHandler(aStream,
|
||||
PlayingRefChangeHandler::RELEASE);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
aStream->Graph()->DispatchToMainThreadStableState(
|
||||
refchanged.forget());
|
||||
}
|
||||
aOutput->SetNull(WEBAUDIO_BLOCK_SIZE);
|
||||
|
@ -217,8 +217,7 @@ class PannerNodeEngine final : public AudioNodeEngine {
|
|||
RefPtr<PlayingRefChangeHandler> refchanged =
|
||||
new PlayingRefChangeHandler(aStream,
|
||||
PlayingRefChangeHandler::ADDREF);
|
||||
aStream->Graph()->DispatchToMainThreadAfterStreamStateUpdate(
|
||||
refchanged.forget());
|
||||
aStream->Graph()->DispatchToMainThreadStableState(refchanged.forget());
|
||||
}
|
||||
mLeftOverData = mHRTFPanner->maxTailFrames();
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче