mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-20 15:27:32 +09:00
Bug 1363481 - Add the old attribute value as a parameter to Element::AfterSetAttr
Tag #1375
This commit is contained in:
parent
658bd351a0
commit
1f233fa14b
65 changed files with 352 additions and 161 deletions
|
|
@ -273,7 +273,9 @@ nsSVGElement::BindToTree(nsIDocument* aDocument, nsIContent* aParent,
|
|||
ParseStyleAttribute(stringValue, attrValue, true);
|
||||
// Don't bother going through SetInlineStyleDeclaration; we don't
|
||||
// want to fire off mutation events or document notifications anyway
|
||||
rv = mAttrsAndChildren.SetAndSwapAttr(nsGkAtoms::style, attrValue);
|
||||
bool oldValueSet;
|
||||
rv = mAttrsAndChildren.SetAndSwapAttr(nsGkAtoms::style, attrValue,
|
||||
&oldValueSet);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
|
|
@ -282,7 +284,8 @@ nsSVGElement::BindToTree(nsIDocument* aDocument, nsIContent* aParent,
|
|||
|
||||
nsresult
|
||||
nsSVGElement::AfterSetAttr(int32_t aNamespaceID, nsIAtom* aName,
|
||||
const nsAttrValue* aValue, bool aNotify)
|
||||
const nsAttrValue* aValue,
|
||||
const nsAttrValue* aOldValue, bool aNotify)
|
||||
{
|
||||
// We don't currently use nsMappedAttributes within SVG. If this changes, we
|
||||
// need to be very careful because some nsAttrValues used by SVG point to
|
||||
|
|
@ -310,7 +313,8 @@ nsSVGElement::AfterSetAttr(int32_t aNamespaceID, nsIAtom* aName,
|
|||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
return nsSVGElementBase::AfterSetAttr(aNamespaceID, aName, aValue, aNotify);
|
||||
return nsSVGElementBase::AfterSetAttr(aNamespaceID, aName, aValue, aOldValue,
|
||||
aNotify);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
@ -1514,7 +1518,11 @@ nsSVGElement::DidChangeValue(nsIAtom* aName,
|
|||
nsIDocument* document = GetComposedDoc();
|
||||
mozAutoDocUpdate updateBatch(document, UPDATE_CONTENT_MODEL,
|
||||
kNotifyDocumentObservers);
|
||||
SetAttrAndNotify(kNameSpaceID_None, aName, nullptr, aEmptyOrOldValue,
|
||||
// XXX Really, the fourth argument to SetAttrAndNotify should be null if
|
||||
// aEmptyOrOldValue does not represent the actual previous value of the
|
||||
// attribute, but currently SVG elements do not even use the old attribute
|
||||
// value in |AfterSetAttr|, so this should be ok.
|
||||
SetAttrAndNotify(kNameSpaceID_None, aName, nullptr, &aEmptyOrOldValue,
|
||||
aNewValue, modType, hasListeners, kNotifyDocumentObservers,
|
||||
kCallAfterSetAttr, document, updateBatch);
|
||||
}
|
||||
|
|
@ -1536,7 +1544,8 @@ nsSVGElement::MaybeSerializeAttrBeforeRemoval(nsIAtom* aName, bool aNotify)
|
|||
nsAutoString serializedValue;
|
||||
attrValue->ToString(serializedValue);
|
||||
nsAttrValue oldAttrValue(serializedValue);
|
||||
mAttrsAndChildren.SetAndSwapAttr(aName, oldAttrValue);
|
||||
bool oldValueSet;
|
||||
mAttrsAndChildren.SetAndSwapAttr(aName, oldAttrValue, &oldValueSet);
|
||||
}
|
||||
|
||||
/* static */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue