зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1781759 factor out ChannelMediaResource::MediaElement() helper r=chunmin
Differential Revision: https://phabricator.services.mozilla.com/D154039
This commit is contained in:
Родитель
e9caca8307
Коммит
7210f485fe
|
@ -513,6 +513,15 @@ nsresult ChannelMediaResource::Open(nsIStreamListener** aStreamListener) {
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
dom::HTMLMediaElement* ChannelMediaResource::MediaElement() const {
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MediaDecoderOwner* owner = mCallback->GetMediaOwner();
|
||||
MOZ_DIAGNOSTIC_ASSERT(owner);
|
||||
dom::HTMLMediaElement* element = owner->GetMediaElement();
|
||||
MOZ_DIAGNOSTIC_ASSERT(element);
|
||||
return element;
|
||||
}
|
||||
|
||||
nsresult ChannelMediaResource::OpenChannel(int64_t aOffset) {
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MOZ_DIAGNOSTIC_ASSERT(!mClosed);
|
||||
|
@ -530,11 +539,7 @@ nsresult ChannelMediaResource::OpenChannel(int64_t aOffset) {
|
|||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Tell the media element that we are fetching data from a channel.
|
||||
MediaDecoderOwner* owner = mCallback->GetMediaOwner();
|
||||
MOZ_DIAGNOSTIC_ASSERT(owner);
|
||||
dom::HTMLMediaElement* element = owner->GetMediaElement();
|
||||
MOZ_DIAGNOSTIC_ASSERT(element);
|
||||
element->DownloadResumed();
|
||||
MediaElement()->DownloadResumed();
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -557,11 +562,7 @@ nsresult ChannelMediaResource::SetupChannelHeaders(int64_t aOffset) {
|
|||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Send Accept header for video and audio types only (Bug 489071)
|
||||
MediaDecoderOwner* owner = mCallback->GetMediaOwner();
|
||||
MOZ_DIAGNOSTIC_ASSERT(owner);
|
||||
dom::HTMLMediaElement* element = owner->GetMediaElement();
|
||||
MOZ_DIAGNOSTIC_ASSERT(element);
|
||||
element->SetRequestHeaders(hc);
|
||||
MediaElement()->SetRequestHeaders(hc);
|
||||
} else {
|
||||
NS_ASSERTION(aOffset == 0, "Don't know how to seek on this channel type");
|
||||
return NS_ERROR_FAILURE;
|
||||
|
@ -670,10 +671,7 @@ void ChannelMediaResource::Suspend(bool aCloseImmediately) {
|
|||
return;
|
||||
}
|
||||
|
||||
MediaDecoderOwner* owner = mCallback->GetMediaOwner();
|
||||
MOZ_DIAGNOSTIC_ASSERT(owner);
|
||||
dom::HTMLMediaElement* element = owner->GetMediaElement();
|
||||
MOZ_DIAGNOSTIC_ASSERT(element);
|
||||
dom::HTMLMediaElement* element = MediaElement();
|
||||
|
||||
if (mChannel && aCloseImmediately && mIsTransportSeekable) {
|
||||
CloseChannel();
|
||||
|
@ -692,10 +690,7 @@ void ChannelMediaResource::Resume() {
|
|||
return;
|
||||
}
|
||||
|
||||
MediaDecoderOwner* owner = mCallback->GetMediaOwner();
|
||||
MOZ_DIAGNOSTIC_ASSERT(owner);
|
||||
dom::HTMLMediaElement* element = owner->GetMediaElement();
|
||||
MOZ_DIAGNOSTIC_ASSERT(element);
|
||||
dom::HTMLMediaElement* element = MediaElement();
|
||||
|
||||
if (mSuspendAgent.Resume()) {
|
||||
if (mChannel) {
|
||||
|
@ -713,10 +708,7 @@ nsresult ChannelMediaResource::RecreateChannel() {
|
|||
nsLoadFlags loadFlags = nsICachingChannel::LOAD_BYPASS_LOCAL_CACHE_IF_BUSY |
|
||||
(mLoadInBackground ? nsIRequest::LOAD_BACKGROUND : 0);
|
||||
|
||||
MediaDecoderOwner* owner = mCallback->GetMediaOwner();
|
||||
MOZ_DIAGNOSTIC_ASSERT(owner);
|
||||
dom::HTMLMediaElement* element = owner->GetMediaElement();
|
||||
MOZ_DIAGNOSTIC_ASSERT(element);
|
||||
dom::HTMLMediaElement* element = MediaElement();
|
||||
|
||||
nsCOMPtr<nsILoadGroup> loadGroup = element->GetDocumentLoadGroup();
|
||||
NS_ENSURE_TRUE(loadGroup, NS_ERROR_NULL_POINTER);
|
||||
|
|
|
@ -213,6 +213,8 @@ class ChannelMediaResource
|
|||
nsresult OnChannelRedirect(nsIChannel* aOld, nsIChannel* aNew,
|
||||
uint32_t aFlags, int64_t aOffset);
|
||||
|
||||
// Use only before MediaDecoder shutdown. Main thread only.
|
||||
dom::HTMLMediaElement* MediaElement() const;
|
||||
// Opens the channel, using an HTTP byte range request to start at aOffset
|
||||
// if possible. Main thread only.
|
||||
nsresult OpenChannel(int64_t aOffset);
|
||||
|
|
Загрузка…
Ссылка в новой задаче