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:
Andreas Pehrson 2018-12-19 04:34:10 +00:00
Родитель 8dec05474b
Коммит 88cb071d63
13 изменённых файлов: 26 добавлений и 38 удалений

Просмотреть файл

@ -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();
}