Bug 1250401 - HTMLOptionElement::GetSelect should not return an element if we have nested OptGroup elements, r=bz

This commit is contained in:
Andrea Marchesini
2016-03-03 09:03:44 +01:00
parent d004b449f6
commit e21269659b
3 changed files with 98 additions and 11 deletions

View File

@@ -354,19 +354,17 @@ HTMLOptionElement::IntrinsicState() const
HTMLSelectElement*
HTMLOptionElement::GetSelect()
{
nsIContent* parent = this;
while ((parent = parent->GetParent()) &&
parent->IsHTMLElement()) {
HTMLSelectElement* select = HTMLSelectElement::FromContent(parent);
if (select) {
return select;
}
if (!parent->IsHTMLElement(nsGkAtoms::optgroup)) {
break;
}
nsIContent* parent = GetParent();
HTMLSelectElement* select = HTMLSelectElement::FromContentOrNull(parent);
if (select) {
return select;
}
return nullptr;
if (!parent->IsHTMLElement(nsGkAtoms::optgroup)) {
return nullptr;
}
return HTMLSelectElement::FromContentOrNull(parent->GetParent());
}
already_AddRefed<HTMLOptionElement>