Bug 872866 - Set length of MediaResource earlier in load. r=roc

This commit is contained in:
Chris Pearce 2013-05-16 15:22:34 +12:00
Родитель b65452c63e
Коммит ed603d2092
1 изменённых файлов: 14 добавлений и 0 удалений

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

@ -607,6 +607,20 @@ nsresult ChannelMediaResource::OpenChannel(nsIStreamListener** aStreamListener)
*aStreamListener = nullptr;
}
if (mByteRange.IsNull()) {
// We're not making a byte range request, so set the content length,
// if it's available as an HTTP header. This ensures that MediaResource
// wrapping objects for platform libraries that expect to know
// the length of a resource can get it before OnStartRequest() fires.
nsCOMPtr<nsIHttpChannel> hc = do_QueryInterface(mChannel);
if (hc) {
int64_t cl = -1;
if (NS_SUCCEEDED(hc->GetContentLength(&cl)) && cl != -1) {
mCacheStream.NotifyDataLength(cl);
}
}
}
mListener = new Listener(this);
NS_ENSURE_TRUE(mListener, NS_ERROR_OUT_OF_MEMORY);