diff options
Diffstat (limited to 'Source/WebCore/html/HTMLOptionElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLOptionElement.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Source/WebCore/html/HTMLOptionElement.cpp b/Source/WebCore/html/HTMLOptionElement.cpp index bb68a9d32..8fcc22c27 100644 --- a/Source/WebCore/html/HTMLOptionElement.cpp +++ b/Source/WebCore/html/HTMLOptionElement.cpp @@ -329,7 +329,14 @@ String HTMLOptionElement::textIndentedToRespectGroupLabel() const bool HTMLOptionElement::disabled() const { - return ownElementDisabled() || (parentNode() && parentNode()->isHTMLElement() && static_cast<HTMLElement*>(parentNode())->disabled()); + if (ownElementDisabled()) + return true; + + if (!parentNode() || !parentNode()->isHTMLElement()) + return false; + + HTMLElement* parentElement = static_cast<HTMLElement*>(parentNode()); + return parentElement->hasTagName(optgroupTag) && parentElement->disabled(); } Node::InsertionNotificationRequest HTMLOptionElement::insertedInto(ContainerNode* insertionPoint) |