summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/HTMLOptionElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/html/HTMLOptionElement.cpp')
-rw-r--r--Source/WebCore/html/HTMLOptionElement.cpp9
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)