Bug 1383628. P2 - move the call to Load() into Clone(). r=gerald

MozReview-Commit-ID: 9k8BXLwAepI

--HG--
extra : rebase_source : 52d3fb871bad53691585e774c2745f328592eb3f
extra : source : cdc492f87aa634eaaae0809aacb261ad25be7b08
This commit is contained in:
JW Wang 2017-08-03 17:47:23 +08:00
parent 09bd1a691e
commit a8a917b8bb
3 changed files with 12 additions and 13 deletions

View File

@ -4721,10 +4721,6 @@ HTMLMediaElement::InitializeDecoderAsClone(ChannelMediaDecoder* aOriginal)
NS_ASSERTION(mLoadingSrc, "mLoadingSrc must already be set");
NS_ASSERTION(mDecoder == nullptr, "Shouldn't have a decoder");
MediaResource* originalResource = aOriginal->GetResource();
if (!originalResource)
return NS_ERROR_FAILURE;
MediaDecoderInit decoderInit(this,
mAudioChannel,
mMuted ? 0.0 : mVolume,
@ -4742,14 +4738,6 @@ HTMLMediaElement::InitializeDecoderAsClone(ChannelMediaDecoder* aOriginal)
LOG(LogLevel::Debug, ("%p Cloned decoder %p from %p", this, decoder.get(), aOriginal));
nsresult rv = decoder->Load(originalResource);
if (NS_FAILED(rv)) {
decoder->Shutdown();
LOG(LogLevel::Debug,
("%p Failed to load for decoder %p", this, decoder.get()));
return rv;
}
return FinishDecoderSetup(decoder);
}

View File

@ -158,7 +158,18 @@ ChannelMediaDecoder::ChannelMediaDecoder(MediaDecoderInit& aInit)
already_AddRefed<ChannelMediaDecoder>
ChannelMediaDecoder::Clone(MediaDecoderInit& aInit)
{
if (!mResource) {
return nullptr;
}
RefPtr<ChannelMediaDecoder> decoder = CloneImpl(aInit);
if (!decoder) {
return nullptr;
}
nsresult rv = decoder->Load(mResource);
if (NS_FAILED(rv)) {
decoder->Shutdown();
return nullptr;
}
return decoder.forget();
}

View File

@ -70,11 +70,11 @@ public:
virtual nsresult Load(nsIChannel* aChannel,
bool aIsPrivateBrowsing,
nsIStreamListener** aStreamListener);
virtual nsresult Load(MediaResource* aOriginal);
private:
virtual ChannelMediaDecoder* CloneImpl(MediaDecoderInit& aInit) = 0;
nsresult OpenResource(nsIStreamListener** aStreamListener);
virtual nsresult Load(MediaResource* aOriginal);
};
} // namespace mozilla