Bug 1319489 - Allow DOMMediaStream constructor to accept a nullptr for aWindow; r=jesup

For testing purposes, it is useful to pass a null aWindow to the DOMMediaStream
constructor. This limits the amount of code that needs to be mocked to create
a mock media stream.

MozReview-Commit-ID: Jgm1m7N0FU4

--HG--
extra : rebase_source : 90ab0157bd0d75cb53190bf4a5d388971a6fdd1b
This commit is contained in:
Dan Minor 2017-06-21 12:51:33 -04:00
parent 6452d4c225
commit 052a7764f8

View File

@ -411,7 +411,7 @@ DOMMediaStream::DOMMediaStream(nsPIDOMWindowInner* aWindow,
mPlaybackTrackListener(MakeAndAddRef<PlaybackTrackListener>(this)),
mTracksCreated(false), mNotifiedOfMediaStreamGraphShutdown(false),
mActive(false), mSetInactiveOnFinish(false),
mAbstractMainThread(aWindow->GetDocGroup()->AbstractMainThreadFor(TaskCategory::Other))
mAbstractMainThread(aWindow ? aWindow->GetDocGroup()->AbstractMainThreadFor(TaskCategory::Other) : nullptr)
{
nsresult rv;
nsCOMPtr<nsIUUIDGenerator> uuidgen =
@ -855,6 +855,7 @@ DOMMediaStream::SetInactiveOnFinish()
void
DOMMediaStream::InitSourceStream(MediaStreamGraph* aGraph)
{
MOZ_ASSERT(mAbstractMainThread);
InitInputStreamCommon(aGraph->CreateSourceStream(mAbstractMainThread), aGraph);
InitOwnedStreamCommon(aGraph);
InitPlaybackStreamCommon(aGraph);
@ -863,6 +864,7 @@ DOMMediaStream::InitSourceStream(MediaStreamGraph* aGraph)
void
DOMMediaStream::InitTrackUnionStream(MediaStreamGraph* aGraph)
{
MOZ_ASSERT(mAbstractMainThread);
InitInputStreamCommon(aGraph->CreateTrackUnionStream(mAbstractMainThread), aGraph);
InitOwnedStreamCommon(aGraph);
InitPlaybackStreamCommon(aGraph);
@ -871,6 +873,7 @@ DOMMediaStream::InitTrackUnionStream(MediaStreamGraph* aGraph)
void
DOMMediaStream::InitAudioCaptureStream(nsIPrincipal* aPrincipal, MediaStreamGraph* aGraph)
{
MOZ_ASSERT(mAbstractMainThread);
const TrackID AUDIO_TRACK = 1;
RefPtr<BasicTrackSource> audioCaptureSource =
@ -901,6 +904,7 @@ DOMMediaStream::InitInputStreamCommon(MediaStream* aStream,
void
DOMMediaStream::InitOwnedStreamCommon(MediaStreamGraph* aGraph)
{
MOZ_ASSERT(mAbstractMainThread);
MOZ_ASSERT(!mPlaybackStream, "Owned stream must be initialized before playback stream");
mOwnedStream = aGraph->CreateTrackUnionStream(mAbstractMainThread);
@ -918,6 +922,7 @@ DOMMediaStream::InitOwnedStreamCommon(MediaStreamGraph* aGraph)
void
DOMMediaStream::InitPlaybackStreamCommon(MediaStreamGraph* aGraph)
{
MOZ_ASSERT(mAbstractMainThread);
mPlaybackStream = aGraph->CreateTrackUnionStream(mAbstractMainThread);
mPlaybackStream->SetAutofinish(true);
mPlaybackStream->RegisterUser();