Bug 1423241 - Remove a rawptr in HTMLMediaElement. r=jya

Differential Revision: https://phabricator.services.mozilla.com/D9099
This commit is contained in:
Andreas Pehrson
2018-11-23 15:00:55 +00:00
parent 18a0293bcf
commit 0f201df50f
2 changed files with 19 additions and 7 deletions

View File

@@ -5272,31 +5272,43 @@ public:
void NotifyTrackAdded(const RefPtr<MediaStreamTrack>& aTrack) override
{
if (!mElement) {
return;
}
mElement->NotifyMediaStreamTrackAdded(aTrack);
}
void NotifyTrackRemoved(const RefPtr<MediaStreamTrack>& aTrack) override
{
if (!mElement) {
return;
}
mElement->NotifyMediaStreamTrackRemoved(aTrack);
}
void NotifyActive() override
{
if (!mElement) {
return;
}
LOG(LogLevel::Debug,
("%p, mSrcStream %p became active",
mElement,
mElement.get(),
mElement->mSrcStream.get()));
mElement->CheckAutoplayDataReady();
}
void NotifyInactive() override
{
if (!mElement) {
return;
}
if (mElement->IsPlaybackEnded()) {
return;
}
LOG(LogLevel::Debug,
("%p, mSrcStream %p became inactive",
mElement,
mElement.get(),
mElement->mSrcStream.get()));
MOZ_ASSERT(!mElement->mSrcStream->Active());
if (mElement->mMediaStreamListener) {
@@ -5307,7 +5319,7 @@ public:
}
protected:
HTMLMediaElement* const mElement;
const WeakPtr<HTMLMediaElement> mElement;
};
void
@@ -5404,8 +5416,8 @@ HTMLMediaElement::SetupSrcMediaStreamPlayback(DOMMediaStream* aStream)
}
mSrcStream->OnTracksAvailable(new MediaStreamTracksAvailableCallback(this));
mMediaStreamTrackListener = new MediaStreamTrackListener(this);
mSrcStream->RegisterTrackListener(mMediaStreamTrackListener);
mMediaStreamTrackListener = MakeUnique<MediaStreamTrackListener>(this);
mSrcStream->RegisterTrackListener(mMediaStreamTrackListener.get());
mSrcStream->AddPrincipalChangeObserver(this);
mSrcStreamVideoPrincipal = mSrcStream->GetVideoPrincipal();
@@ -5434,7 +5446,7 @@ HTMLMediaElement::EndSrcMediaStreamPlayback()
mSelectedVideoStreamTrack = nullptr;
mVideoFrameListener = nullptr;
mSrcStream->UnregisterTrackListener(mMediaStreamTrackListener);
mSrcStream->UnregisterTrackListener(mMediaStreamTrackListener.get());
mMediaStreamTrackListener = nullptr;
mSrcStreamTracksAvailable = false;