зеркало из https://github.com/mozilla/gecko-dev.git
Bug 591560: Fix annoying abort in animated gifs. r=bz a=blocker
This commit is contained in:
Родитель
65a0b10e6c
Коммит
2af597c8fa
|
@ -567,10 +567,8 @@ nsImageLoadingContent::NotifyOwnerDocumentChanged(nsIDocument *aOldDoc)
|
|||
}
|
||||
|
||||
// Re-track the images
|
||||
if (mCurrentRequest)
|
||||
TrackImage(mCurrentRequest);
|
||||
if (mPendingRequest)
|
||||
TrackImage(mPendingRequest);
|
||||
TrackImage(mCurrentRequest);
|
||||
TrackImage(mPendingRequest);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -985,6 +983,9 @@ nsImageLoadingContent::SetBlockingOnload(PRBool aBlocking)
|
|||
nsresult
|
||||
nsImageLoadingContent::TrackImage(imgIRequest* aImage)
|
||||
{
|
||||
if (!aImage)
|
||||
return NS_OK;
|
||||
|
||||
nsIDocument* doc = GetOurDocument();
|
||||
if (doc)
|
||||
return doc->AddImage(aImage);
|
||||
|
@ -994,6 +995,9 @@ nsImageLoadingContent::TrackImage(imgIRequest* aImage)
|
|||
nsresult
|
||||
nsImageLoadingContent::UntrackImage(imgIRequest* aImage)
|
||||
{
|
||||
if (!aImage)
|
||||
return NS_OK;
|
||||
|
||||
// If GetOurDocument() returns null here, we've outlived our document.
|
||||
// That's fine, because the document empties out the tracker and unlocks
|
||||
// all locked images on destruction.
|
||||
|
@ -1008,6 +1012,7 @@ void
|
|||
nsImageLoadingContent::CreateStaticImageClone(nsImageLoadingContent* aDest) const
|
||||
{
|
||||
aDest->mCurrentRequest = nsContentUtils::GetStaticRequest(mCurrentRequest);
|
||||
aDest->TrackImage(aDest->mCurrentRequest);
|
||||
aDest->mForcedImageState = mForcedImageState;
|
||||
aDest->mImageBlockingStatus = mImageBlockingStatus;
|
||||
aDest->mLoadingEnabled = mLoadingEnabled;
|
||||
|
|
|
@ -284,6 +284,8 @@ protected:
|
|||
|
||||
/**
|
||||
* Adds/Removes a given imgIRequest from our document's tracker.
|
||||
*
|
||||
* No-op if aImage is null.
|
||||
*/
|
||||
nsresult TrackImage(imgIRequest* aImage);
|
||||
nsresult UntrackImage(imgIRequest* aImage);
|
||||
|
|
Загрузка…
Ссылка в новой задаче