diff --git a/dom/media/ChannelMediaResource.cpp b/dom/media/ChannelMediaResource.cpp index f235b05b7c8f..019e9021cf7f 100644 --- a/dom/media/ChannelMediaResource.cpp +++ b/dom/media/ChannelMediaResource.cpp @@ -380,6 +380,17 @@ ChannelMediaResource::OnStopRequest(nsIRequest* aRequest, mChannelStatistics.Stop(); + // Move this request back into the foreground. This is necessary for + // requests owned by video documents to ensure the load group fires + // OnStopRequest when restoring from session history. + nsLoadFlags loadFlags; + DebugOnly rv = mChannel->GetLoadFlags(&loadFlags); + NS_ASSERTION(NS_SUCCEEDED(rv), "GetLoadFlags() failed!"); + + if (loadFlags & nsIRequest::LOAD_BACKGROUND) { + ModifyLoadFlags(loadFlags & ~nsIRequest::LOAD_BACKGROUND); + } + // Note that aStatus might have succeeded --- this might be a normal close // --- even in situations where the server cut us off because we were // suspended. So we need to "reopen on error" in that case too. The only @@ -405,17 +416,6 @@ ChannelMediaResource::OnStopRequest(nsIRequest* aRequest, mCacheStream.NotifyDataEnded(aStatus); - // Move this request back into the foreground. This is necessary for - // requests owned by video documents to ensure the load group fires - // OnStopRequest when restoring from session history. - nsLoadFlags loadFlags; - DebugOnly rv = mChannel->GetLoadFlags(&loadFlags); - NS_ASSERTION(NS_SUCCEEDED(rv), "GetLoadFlags() failed!"); - - if (loadFlags & nsIRequest::LOAD_BACKGROUND) { - ModifyLoadFlags(loadFlags & ~nsIRequest::LOAD_BACKGROUND); - } - return NS_OK; }