Use "= default" to denote default constructor or destructor
[WebKit-https.git] / Source / WebCore / accessibility / AccessibilityListBoxOption.cpp
index e66649a..417d624 100644 (file)
@@ -10,7 +10,7 @@
  * 2.  Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
  *     documentation and/or other materials provided with the distribution.
- * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
  *     its contributors may be used to endorse or promote products derived
  *     from this software without specific prior written permission.
  *
 #include "RenderListBox.h"
 #include "RenderObject.h"
 
-using namespace std;
-
 namespace WebCore {
 
 using namespace HTMLNames;
     
 AccessibilityListBoxOption::AccessibilityListBoxOption()
-    : m_optionElement(0)
+    : m_optionElement(nullptr)
 {
 }
 
-AccessibilityListBoxOption::~AccessibilityListBoxOption()
-{
-}    
+AccessibilityListBoxOption::~AccessibilityListBoxOption() = default;
     
-PassRefPtr<AccessibilityListBoxOption> AccessibilityListBoxOption::create()
+Ref<AccessibilityListBoxOption> AccessibilityListBoxOption::create()
 {
-    return adoptRef(new AccessibilityListBoxOption());
+    return adoptRef(*new AccessibilityListBoxOption());
 }
     
 bool AccessibilityListBoxOption::isEnabled() const
 {
-    if (!m_optionElement)
+    if (is<HTMLOptGroupElement>(m_optionElement))
         return false;
-    
-    if (m_optionElement->hasTagName(optgroupTag))
+
+    if (equalLettersIgnoringASCIICase(getAttribute(aria_disabledAttr), "true"))
+        return false;
+
+    if (m_optionElement->hasAttributeWithoutSynchronization(disabledAttr))
         return false;
     
     return true;
@@ -74,13 +73,10 @@ bool AccessibilityListBoxOption::isEnabled() const
     
 bool AccessibilityListBoxOption::isSelected() const
 {
-    if (!m_optionElement)
+    if (!is<HTMLOptionElement>(m_optionElement))
         return false;
 
-    if (!m_optionElement->hasTagName(optionTag))
-        return false;
-    
-    return static_cast<HTMLOptionElement*>(m_optionElement)->selected();
+    return downcast<HTMLOptionElement>(*m_optionElement).selected();
 }
 
 bool AccessibilityListBoxOption::isSelectedOptionActive() const
@@ -102,24 +98,24 @@ LayoutRect AccessibilityListBoxOption::elementRect() const
     if (!listBoxParentNode)
         return rect;
     
-    RenderObject* listBoxRenderer = listBoxParentNode->renderer();
+    RenderElement* listBoxRenderer = listBoxParentNode->renderer();
     if (!listBoxRenderer)
         return rect;
     
-    LayoutRect parentRect = listBoxRenderer->document()->axObjectCache()->getOrCreate(listBoxRenderer)->boundingBoxRect();
+    LayoutRect parentRect = listBoxRenderer->document().axObjectCache()->getOrCreate(listBoxRenderer)->boundingBoxRect();
     int index = listBoxOptionIndex();
     if (index != -1)
-        rect = toRenderListBox(listBoxRenderer)->itemBoundingBoxRect(parentRect.location(), index);
+        rect = downcast<RenderListBox>(*listBoxRenderer).itemBoundingBoxRect(parentRect.location(), index);
     
     return rect;
 }
 
-bool AccessibilityListBoxOption::accessibilityIsIgnored() const
+bool AccessibilityListBoxOption::computeAccessibilityIsIgnored() const
 {
     if (!m_optionElement)
         return true;
-    
-    if (equalIgnoringCase(getAttribute(aria_hiddenAttr), "true"))
+
+    if (accessibilityIsIgnoredByDefault())
         return true;
     
     return parentObject()->accessibilityIsIgnored();
@@ -127,17 +123,14 @@ bool AccessibilityListBoxOption::accessibilityIsIgnored() const
     
 bool AccessibilityListBoxOption::canSetSelectedAttribute() const
 {
-    if (!m_optionElement)
+    if (!is<HTMLOptionElement>(m_optionElement))
         return false;
     
-    if (!m_optionElement->hasTagName(optionTag))
-        return false;
-    
-    if (m_optionElement->disabled())
+    if (m_optionElement->isDisabledFormControl())
         return false;
     
     HTMLSelectElement* selectElement = listBoxOptionParentNode();
-    if (selectElement && selectElement->disabled())
+    if (selectElement && selectElement->isDisabledFormControl())
         return false;
     
     return true;
@@ -152,11 +145,11 @@ String AccessibilityListBoxOption::stringValue() const
     if (!ariaLabel.isNull())
         return ariaLabel;
     
-    if (m_optionElement->hasTagName(optionTag))
-        return static_cast<HTMLOptionElement*>(m_optionElement)->text();
+    if (is<HTMLOptionElement>(*m_optionElement))
+        return downcast<HTMLOptionElement>(*m_optionElement).label();
     
-    if (m_optionElement->hasTagName(optgroupTag))
-        return static_cast<HTMLOptGroupElement*>(m_optionElement)->groupLabelText();
+    if (is<HTMLOptGroupElement>(*m_optionElement))
+        return downcast<HTMLOptGroupElement>(*m_optionElement).groupLabelText();
     
     return String();
 }
@@ -170,9 +163,9 @@ AccessibilityObject* AccessibilityListBoxOption::parentObject() const
 {
     HTMLSelectElement* parentNode = listBoxOptionParentNode();
     if (!parentNode)
-        return 0;
+        return nullptr;
     
-    return m_optionElement->document()->axObjectCache()->getOrCreate(parentNode);
+    return m_optionElement->document().axObjectCache()->getOrCreate(parentNode);
 }
 
 void AccessibilityListBoxOption::setSelected(bool selected)
@@ -196,15 +189,15 @@ void AccessibilityListBoxOption::setSelected(bool selected)
 HTMLSelectElement* AccessibilityListBoxOption::listBoxOptionParentNode() const
 {
     if (!m_optionElement)
-        return 0;
-    
-    if (m_optionElement->hasTagName(optionTag))
-        return static_cast<HTMLOptionElement*>(m_optionElement)->ownerSelectElement();
-    
-    if (m_optionElement->hasTagName(optgroupTag))
-        return static_cast<HTMLOptGroupElement*>(m_optionElement)->ownerSelectElement();
-    
-    return 0;
+        return nullptr;
+
+    if (is<HTMLOptionElement>(*m_optionElement))
+        return downcast<HTMLOptionElement>(*m_optionElement).ownerSelectElement();
+
+    if (is<HTMLOptGroupElement>(*m_optionElement))
+        return downcast<HTMLOptGroupElement>(*m_optionElement).ownerSelectElement();
+
+    return nullptr;
 }
 
 int AccessibilityListBoxOption::listBoxOptionIndex() const
@@ -216,7 +209,7 @@ int AccessibilityListBoxOption::listBoxOptionIndex() const
     if (!selectElement) 
         return -1;
     
-    const Vector<HTMLElement*>& listItems = selectElement->listItems();
+    const auto& listItems = selectElement->listItems();
     unsigned length = listItems.size();
     for (unsigned i = 0; i < length; i++)
         if (listItems[i] == m_optionElement)