diff --git a/content/html/content/src/HTMLSelectElement.cpp b/content/html/content/src/HTMLSelectElement.cpp index b08740f6d7b..8504c9af283 100644 --- a/content/html/content/src/HTMLSelectElement.cpp +++ b/content/html/content/src/HTMLSelectElement.cpp @@ -1744,30 +1744,24 @@ HTMLSelectElement::RebuildOptionsArray(bool aNotify) bool HTMLSelectElement::IsValueMissing() { - if (!HasAttr(kNameSpaceID_None, nsGkAtoms::required)) { + if (!Required()) { return false; } - uint32_t length; - mOptions->GetLength(&length); + uint32_t length = Length(); for (uint32_t i = 0; i < length; ++i) { - nsIDOMHTMLOptionElement* option = mOptions->ItemAsOption(i); - bool selected; - NS_ENSURE_SUCCESS(option->GetSelected(&selected), false); - - if (!selected) { + nsRefPtr option = Item(i); + if (!option->Selected()) { continue; } - bool disabled; - IsOptionDisabled(i, &disabled); - if (disabled) { + if (IsOptionDisabled(option)) { continue; } nsAutoString value; - NS_ENSURE_SUCCESS(option->GetValue(value), false); + MOZ_ALWAYS_TRUE(NS_SUCCEEDED(option->GetValue(value))); if (!value.IsEmpty()) { return false; }