Bug 1318624 - Should not perform a load of a image if it's document is not active document; r=jdm

MozReview-Commit-ID: CjclOenaBdv
This commit is contained in:
Edgar Chen
2016-11-19 00:35:18 +08:00
parent daaee3cd66
commit 27b625763a
2 changed files with 10 additions and 25 deletions

View File

@@ -534,7 +534,7 @@ HTMLImageElement::SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
mResponsiveSelector->SetDefaultSource(aValue);
}
QueueImageLoadTask(true);
} else if (aNotify) {
} else if (aNotify && OwnerDoc()->IsCurrentActiveDocument()) {
// If aNotify is false, we are coming from the parser or some such place;
// we'll get bound after all the attributes have been set, so we'll do the
// sync image load from BindToTree. Skip the LoadImage call in that case.
@@ -593,7 +593,7 @@ HTMLImageElement::SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
// per spec, full selection runs when this changes, even though
// it doesn't directly affect the source selection
QueueImageLoadTask(true);
} else {
} else if (OwnerDoc()->IsCurrentActiveDocument()) {
// Bug 1076583 - We still use the older synchronous algorithm in
// non-responsive mode. Force a new load of the image with the
// new cross origin policy
@@ -659,7 +659,8 @@ HTMLImageElement::BindToTree(nsIDocument* aDocument, nsIContent* aParent,
// If loading is temporarily disabled, don't even launch MaybeLoadImage.
// Otherwise MaybeLoadImage may run later when someone has reenabled
// loading.
if (LoadingEnabled()) {
if (LoadingEnabled() &&
OwnerDoc()->IsCurrentActiveDocument()) {
nsContentUtils::AddScriptRunner(
NewRunnableMethod(this, &HTMLImageElement::MaybeLoadImage));
}
@@ -864,7 +865,8 @@ HTMLImageElement::CopyInnerTo(Element* aDest, bool aPreallocateChildren)
// really do want it to do the load, so set it up to happen once the cloning
// reaches a stable state.
if (!dest->InResponsiveMode() &&
dest->HasAttr(kNameSpaceID_None, nsGkAtoms::src)) {
dest->HasAttr(kNameSpaceID_None, nsGkAtoms::src) &&
dest->OwnerDoc()->IsCurrentActiveDocument()) {
// Mark channel as urgent-start before load image if the image load is
// initaiated by a user interaction.
mUseUrgentStartForChannel = EventStateManager::IsHandlingUserInput();