Bug 1340477 - Support feature detection for autocomplete attribute. r=smaug

This commit is contained in:
johndai1984
2017-05-09 22:57:00 -04:00
parent dfdd816a4d
commit 51e081877c
9 changed files with 278 additions and 112 deletions

View File

@@ -120,6 +120,7 @@ HTMLSelectElement::HTMLSelectElement(already_AddRefed<mozilla::dom::NodeInfo>& a
: nsGenericHTMLFormElementWithState(aNodeInfo, NS_FORM_SELECT),
mOptions(new HTMLOptionsCollection(this)),
mAutocompleteAttrState(nsContentUtils::eAutocompleteAttrState_Unknown),
mAutocompleteInfoState(nsContentUtils::eAutocompleteAttrState_Unknown),
mIsDoneAddingChildren(!aFromParser),
mDisabledChanged(false),
mMutating(false),
@@ -207,9 +208,10 @@ void
HTMLSelectElement::GetAutocompleteInfo(AutocompleteInfo& aInfo)
{
const nsAttrValue* attributeVal = GetParsedAttr(nsGkAtoms::autocomplete);
mAutocompleteAttrState =
mAutocompleteInfoState =
nsContentUtils::SerializeAutocompleteAttribute(attributeVal, aInfo,
mAutocompleteAttrState);
mAutocompleteInfoState,
true);
}
NS_IMETHODIMP
@@ -1318,8 +1320,9 @@ HTMLSelectElement::AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName,
} else if (aName == nsGkAtoms::required) {
UpdateValueMissingValidityState();
} else if (aName == nsGkAtoms::autocomplete) {
// Clear the cached @autocomplete attribute state
// Clear the cached @autocomplete attribute and autocompleteInfo state.
mAutocompleteAttrState = nsContentUtils::eAutocompleteAttrState_Unknown;
mAutocompleteInfoState = nsContentUtils::eAutocompleteAttrState_Unknown;
}
}