Bug 1357646 part 2. Move the setting of mType from HTMLMenuElement::ParseAttribute to HTMLMenuElement::AfterSetAttr. r=mystor

This also fixes mType for cases in which the type attribute is removed.
This commit is contained in:
Boris Zbarsky
2017-04-20 00:35:19 -04:00
parent c1860fe6cf
commit 89e283631f
2 changed files with 19 additions and 9 deletions

View File

@@ -113,6 +113,21 @@ HTMLMenuElement::Build(nsIMenuBuilder* aBuilder)
BuildSubmenu(EmptyString(), this, aBuilder);
}
nsresult
HTMLMenuElement::AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
const nsAttrValue* aValue, bool aNotify)
{
if (aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::type) {
if (aValue) {
mType = aValue->GetEnumValue();
} else {
mType = kMenuDefaultType->value;
}
}
return nsGenericHTMLElement::AfterSetAttr(aNameSpaceID, aName, aValue,
aNotify);
}
bool
HTMLMenuElement::ParseAttribute(int32_t aNamespaceID,
@@ -121,15 +136,8 @@ HTMLMenuElement::ParseAttribute(int32_t aNamespaceID,
nsAttrValue& aResult)
{
if (aNamespaceID == kNameSpaceID_None && aAttribute == nsGkAtoms::type) {
bool success = aResult.ParseEnumValue(aValue, kMenuTypeTable,
false);
if (success) {
mType = aResult.GetEnumValue();
} else {
mType = kMenuDefaultType->value;
}
return success;
return aResult.ParseEnumValue(aValue, kMenuTypeTable, false,
kMenuDefaultType);
}
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,