Title: [156531] trunk/Tools
Revision
156531
Author
[email protected]
Date
2013-09-27 02:07:17 -0700 (Fri, 27 Sep 2013)

Log Message

[ATK] Normalize checks in entry points for DRT and WKTR
https://bugs.webkit.org/show_bug.cgi?id=121959

Reviewed by Chris Fleizach.

Always check if we have a proper instance of AtkObject,
implementing the interfaces that we might need for each case, at
the entry point of every method of AccessibilityUIElement for ATK,
and do those checks in an uniform way across DRT and WKTR, to
avoid confusion and issues when modifying these files in the future.

* DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
(AccessibilityUIElement::getChildren): Use normalized checks.
(AccessibilityUIElement::getChildrenWithRange): Ditto.
(AccessibilityUIElement::rowCount): Ditto.
(AccessibilityUIElement::columnCount): Ditto.
(AccessibilityUIElement::childrenCount): Ditto.
(AccessibilityUIElement::elementAtPoint): Ditto.
(AccessibilityUIElement::getChildAtIndex): Ditto.
(AccessibilityUIElement::allAttributes): Ditto.
(AccessibilityUIElement::titleUIElement): Ditto.
(AccessibilityUIElement::parentElement): Ditto.
(AccessibilityUIElement::attributesOfChildren): Ditto.
(AccessibilityUIElement::role): Ditto.
(AccessibilityUIElement::title): Ditto.
(AccessibilityUIElement::description): Ditto.
(AccessibilityUIElement::stringValue): Ditto.
(AccessibilityUIElement::language): Ditto.
(AccessibilityUIElement::x): Ditto.
(AccessibilityUIElement::y): Ditto.
(AccessibilityUIElement::width): Ditto.
(AccessibilityUIElement::height): Ditto.
(AccessibilityUIElement::orientation): Ditto.
(AccessibilityUIElement::intValue): Ditto.
(AccessibilityUIElement::minValue): Ditto.
(AccessibilityUIElement::maxValue): Ditto.
(indexRangeInTable): Ditto.
(AccessibilityUIElement::cellForColumnAndRow): Ditto.
(AccessibilityUIElement::stringAttributeValue): Ditto.
(alterCurrentValue): Ditto.
(AccessibilityUIElement::press): Ditto.
(AccessibilityUIElement::documentEncoding): Ditto.
(AccessibilityUIElement::documentURI): Ditto.
(AccessibilityUIElement::hasPopup): Ditto.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::indexRangeInTable): Use normalized checks.
(WTR::alterCurrentValue): Ditto.
(WTR::AccessibilityUIElement::getChildren): Ditto.
(WTR::AccessibilityUIElement::getChildrenWithRange): Ditto.
(WTR::AccessibilityUIElement::childrenCount): Ditto.
(WTR::AccessibilityUIElement::elementAtPoint): Ditto.
(WTR::AccessibilityUIElement::indexOfChild): Ditto.
(WTR::AccessibilityUIElement::childAtIndex): Ditto.
(WTR::AccessibilityUIElement::titleUIElement): Ditto.
(WTR::AccessibilityUIElement::parentElement): Ditto.
(WTR::AccessibilityUIElement::attributesOfChildren): Ditto.
(WTR::AccessibilityUIElement::allAttributes): Ditto.
(WTR::AccessibilityUIElement::stringAttributeValue): Ditto.
(WTR::AccessibilityUIElement::role): Ditto.
(WTR::AccessibilityUIElement::title): Ditto.
(WTR::AccessibilityUIElement::description): Ditto.
(WTR::AccessibilityUIElement::orientation): Ditto.
(WTR::AccessibilityUIElement::stringValue): Ditto.
(WTR::AccessibilityUIElement::language): Ditto.
(WTR::AccessibilityUIElement::x): Ditto.
(WTR::AccessibilityUIElement::y): Ditto.
(WTR::AccessibilityUIElement::width): Ditto.
(WTR::AccessibilityUIElement::height): Ditto.
(WTR::AccessibilityUIElement::intValue): Ditto.
(WTR::AccessibilityUIElement::minValue): Ditto.
(WTR::AccessibilityUIElement::maxValue): Ditto.
(WTR::AccessibilityUIElement::rowCount): Ditto.
(WTR::AccessibilityUIElement::columnCount): Ditto.
(WTR::AccessibilityUIElement::cellForColumnAndRow): Ditto.
(WTR::AccessibilityUIElement::press): Ditto.
(WTR::AccessibilityUIElement::documentEncoding): Ditto.
(WTR::AccessibilityUIElement::documentURI): Ditto.
(WTR::AccessibilityUIElement::hasPopup): Ditto.

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (156530 => 156531)


--- trunk/Tools/ChangeLog	2013-09-27 08:58:08 UTC (rev 156530)
+++ trunk/Tools/ChangeLog	2013-09-27 09:07:17 UTC (rev 156531)
@@ -1,5 +1,87 @@
 2013-09-27  Mario Sanchez Prada  <[email protected]>
 
+        [ATK] Normalize checks in entry points for DRT and WKTR
+        https://bugs.webkit.org/show_bug.cgi?id=121959
+
+        Reviewed by Chris Fleizach.
+
+        Always check if we have a proper instance of AtkObject,
+        implementing the interfaces that we might need for each case, at
+        the entry point of every method of AccessibilityUIElement for ATK,
+        and do those checks in an uniform way across DRT and WKTR, to
+        avoid confusion and issues when modifying these files in the future.
+
+        * DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:
+        (AccessibilityUIElement::getChildren): Use normalized checks.
+        (AccessibilityUIElement::getChildrenWithRange): Ditto.
+        (AccessibilityUIElement::rowCount): Ditto.
+        (AccessibilityUIElement::columnCount): Ditto.
+        (AccessibilityUIElement::childrenCount): Ditto.
+        (AccessibilityUIElement::elementAtPoint): Ditto.
+        (AccessibilityUIElement::getChildAtIndex): Ditto.
+        (AccessibilityUIElement::allAttributes): Ditto.
+        (AccessibilityUIElement::titleUIElement): Ditto.
+        (AccessibilityUIElement::parentElement): Ditto.
+        (AccessibilityUIElement::attributesOfChildren): Ditto.
+        (AccessibilityUIElement::role): Ditto.
+        (AccessibilityUIElement::title): Ditto.
+        (AccessibilityUIElement::description): Ditto.
+        (AccessibilityUIElement::stringValue): Ditto.
+        (AccessibilityUIElement::language): Ditto.
+        (AccessibilityUIElement::x): Ditto.
+        (AccessibilityUIElement::y): Ditto.
+        (AccessibilityUIElement::width): Ditto.
+        (AccessibilityUIElement::height): Ditto.
+        (AccessibilityUIElement::orientation): Ditto.
+        (AccessibilityUIElement::intValue): Ditto.
+        (AccessibilityUIElement::minValue): Ditto.
+        (AccessibilityUIElement::maxValue): Ditto.
+        (indexRangeInTable): Ditto.
+        (AccessibilityUIElement::cellForColumnAndRow): Ditto.
+        (AccessibilityUIElement::stringAttributeValue): Ditto.
+        (alterCurrentValue): Ditto.
+        (AccessibilityUIElement::press): Ditto.
+        (AccessibilityUIElement::documentEncoding): Ditto.
+        (AccessibilityUIElement::documentURI): Ditto.
+        (AccessibilityUIElement::hasPopup): Ditto.
+
+        * WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
+        (WTR::indexRangeInTable): Use normalized checks.
+        (WTR::alterCurrentValue): Ditto.
+        (WTR::AccessibilityUIElement::getChildren): Ditto.
+        (WTR::AccessibilityUIElement::getChildrenWithRange): Ditto.
+        (WTR::AccessibilityUIElement::childrenCount): Ditto.
+        (WTR::AccessibilityUIElement::elementAtPoint): Ditto.
+        (WTR::AccessibilityUIElement::indexOfChild): Ditto.
+        (WTR::AccessibilityUIElement::childAtIndex): Ditto.
+        (WTR::AccessibilityUIElement::titleUIElement): Ditto.
+        (WTR::AccessibilityUIElement::parentElement): Ditto.
+        (WTR::AccessibilityUIElement::attributesOfChildren): Ditto.
+        (WTR::AccessibilityUIElement::allAttributes): Ditto.
+        (WTR::AccessibilityUIElement::stringAttributeValue): Ditto.
+        (WTR::AccessibilityUIElement::role): Ditto.
+        (WTR::AccessibilityUIElement::title): Ditto.
+        (WTR::AccessibilityUIElement::description): Ditto.
+        (WTR::AccessibilityUIElement::orientation): Ditto.
+        (WTR::AccessibilityUIElement::stringValue): Ditto.
+        (WTR::AccessibilityUIElement::language): Ditto.
+        (WTR::AccessibilityUIElement::x): Ditto.
+        (WTR::AccessibilityUIElement::y): Ditto.
+        (WTR::AccessibilityUIElement::width): Ditto.
+        (WTR::AccessibilityUIElement::height): Ditto.
+        (WTR::AccessibilityUIElement::intValue): Ditto.
+        (WTR::AccessibilityUIElement::minValue): Ditto.
+        (WTR::AccessibilityUIElement::maxValue): Ditto.
+        (WTR::AccessibilityUIElement::rowCount): Ditto.
+        (WTR::AccessibilityUIElement::columnCount): Ditto.
+        (WTR::AccessibilityUIElement::cellForColumnAndRow): Ditto.
+        (WTR::AccessibilityUIElement::press): Ditto.
+        (WTR::AccessibilityUIElement::documentEncoding): Ditto.
+        (WTR::AccessibilityUIElement::documentURI): Ditto.
+        (WTR::AccessibilityUIElement::hasPopup): Ditto.
+
+2013-09-27  Mario Sanchez Prada  <[email protected]>
+
         [ATK] accessibility/aria-sort.html is failing after r156409
         https://bugs.webkit.org/show_bug.cgi?id=121947
 

Modified: trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp (156530 => 156531)


--- trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp	2013-09-27 08:58:08 UTC (rev 156530)
+++ trunk/Tools/DumpRenderTree/atk/AccessibilityUIElementAtk.cpp	2013-09-27 09:07:17 UTC (rev 156531)
@@ -317,6 +317,9 @@
 
 void AccessibilityUIElement::getChildren(Vector<AccessibilityUIElement>& children)
 {
+    if (!ATK_IS_OBJECT(m_element))
+        return;
+
     int count = childrenCount();
     for (int i = 0; i < count; i++) {
         AtkObject* child = atk_object_ref_accessible_child(ATK_OBJECT(m_element), i);
@@ -326,6 +329,9 @@
 
 void AccessibilityUIElement::getChildrenWithRange(Vector<AccessibilityUIElement>& elementVector, unsigned start, unsigned end)
 {
+    if (!ATK_IS_OBJECT(m_element))
+        return;
+
     for (unsigned i = start; i < end; i++) {
         AtkObject* child = atk_object_ref_accessible_child(ATK_OBJECT(m_element), i);
         elementVector.append(AccessibilityUIElement(child));
@@ -334,37 +340,31 @@
 
 int AccessibilityUIElement::rowCount()
 {
-    if (!m_element)
+    if (!ATK_IS_TABLE(m_element))
         return 0;
 
-    ASSERT(ATK_IS_TABLE(m_element));
-
     return atk_table_get_n_rows(ATK_TABLE(m_element));
 }
 
 int AccessibilityUIElement::columnCount()
 {
-    if (!m_element)
+    if (!ATK_IS_TABLE(m_element))
         return 0;
 
-    ASSERT(ATK_IS_TABLE(m_element));
-
     return atk_table_get_n_columns(ATK_TABLE(m_element));
 }
 
 int AccessibilityUIElement::childrenCount()
 {
-    if (!m_element)
+    if (!ATK_IS_OBJECT(m_element))
         return 0;
 
-    ASSERT(ATK_IS_OBJECT(m_element));
-
     return atk_object_get_n_accessible_children(ATK_OBJECT(m_element));
 }
 
 AccessibilityUIElement AccessibilityUIElement::elementAtPoint(int x, int y)
 {
-    if (!m_element)
+    if (!ATK_IS_COMPONENT(m_element))
         return 0;
 
     return AccessibilityUIElement(atk_component_ref_accessible_at_point(ATK_COMPONENT(m_element), x, y, ATK_XY_WINDOW));
@@ -378,6 +378,9 @@
 
 AccessibilityUIElement AccessibilityUIElement::getChildAtIndex(unsigned index)
 {
+    if (!ATK_IS_OBJECT(m_element))
+        return 0;
+
     Vector<AccessibilityUIElement> children;
     getChildrenWithRange(children, index, index + 1);
 
@@ -395,7 +398,7 @@
 
 JSStringRef AccessibilityUIElement::allAttributes()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element))
+    if (!ATK_IS_OBJECT(m_element))
         return JSStringCreateWithCharacters(0, 0);
 
     return JSStringCreateWithUTF8CString(attributesOfElement(this).utf8().data());
@@ -415,7 +418,7 @@
 
 AccessibilityUIElement AccessibilityUIElement::titleUIElement()
 {
-    if (!m_element)
+    if (!ATK_IS_OBJECT(m_element))
         return 0;
 
     AtkRelationSet* set = atk_object_ref_relation_set(ATK_OBJECT(m_element));
@@ -439,17 +442,18 @@
 
 AccessibilityUIElement AccessibilityUIElement::parentElement()
 {
-    if (!m_element)
+    if (!ATK_IS_OBJECT(m_element))
         return 0;
 
-    ASSERT(ATK_IS_OBJECT(m_element));
-
     AtkObject* parent =  atk_object_get_parent(ATK_OBJECT(m_element));
     return parent ? AccessibilityUIElement(parent) : 0;
 }
 
 JSStringRef AccessibilityUIElement::attributesOfChildren()
 {
+    if (!ATK_IS_OBJECT(m_element))
+        return JSStringCreateWithCharacters(0, 0);
+
     Vector<AccessibilityUIElement> children;
     getChildren(children);
 
@@ -470,7 +474,7 @@
 
 JSStringRef AccessibilityUIElement::role()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element))
+    if (!ATK_IS_OBJECT(m_element))
         return JSStringCreateWithCharacters(0, 0);
 
     AtkRole role = atk_object_get_role(ATK_OBJECT(m_element));
@@ -493,6 +497,9 @@
 
 JSStringRef AccessibilityUIElement::title()
 {
+    if (!ATK_IS_OBJECT(m_element))
+        return JSStringCreateWithCharacters(0, 0);
+
     const gchar* name = atk_object_get_name(ATK_OBJECT(m_element));
     GOwnPtr<gchar> axTitle(g_strdup_printf("AXTitle: %s", name ? name : ""));
 
@@ -501,8 +508,10 @@
 
 JSStringRef AccessibilityUIElement::description()
 {
+    if (!ATK_IS_OBJECT(m_element))
+        return JSStringCreateWithCharacters(0, 0);
+
     const gchar* description = atk_object_get_description(ATK_OBJECT(m_element));
-
     if (!description)
         return JSStringCreateWithCharacters(0, 0);
 
@@ -513,7 +522,7 @@
 
 JSStringRef AccessibilityUIElement::stringValue()
 {
-    if (!m_element || !ATK_IS_TEXT(m_element))
+    if (!ATK_IS_TEXT(m_element))
         return JSStringCreateWithCharacters(0, 0);
 
     GOwnPtr<gchar> text(atk_text_get_text(ATK_TEXT(m_element), 0, -1));
@@ -525,7 +534,7 @@
 
 JSStringRef AccessibilityUIElement::language()
 {
-    if (!m_element)
+    if (!ATK_IS_OBJECT(m_element))
         return JSStringCreateWithCharacters(0, 0);
 
     const gchar* locale = atk_object_get_object_locale(ATK_OBJECT(m_element));
@@ -546,8 +555,10 @@
 
 double AccessibilityUIElement::x()
 {
+    if (!ATK_IS_COMPONENT(m_element))
+        return 0;
+
     int x, y;
-
     atk_component_get_position(ATK_COMPONENT(m_element), &x, &y, ATK_XY_SCREEN);
 
     return x;
@@ -555,8 +566,10 @@
 
 double AccessibilityUIElement::y()
 {
+    if (!ATK_IS_COMPONENT(m_element))
+        return 0;
+
     int x, y;
-
     atk_component_get_position(ATK_COMPONENT(m_element), &x, &y, ATK_XY_SCREEN);
 
     return y;
@@ -564,8 +577,10 @@
 
 double AccessibilityUIElement::width()
 {
+    if (!ATK_IS_COMPONENT(m_element))
+        return 0;
+
     int width, height;
-
     atk_component_get_size(ATK_COMPONENT(m_element), &width, &height);
 
     return width;
@@ -573,8 +588,10 @@
 
 double AccessibilityUIElement::height()
 {
+    if (!ATK_IS_COMPONENT(m_element))
+        return 0;
+
     int width, height;
-
     atk_component_get_size(ATK_COMPONENT(m_element), &width, &height);
 
     return height;
@@ -594,7 +611,7 @@
 
 JSStringRef AccessibilityUIElement::orientation() const
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element))
+    if (!ATK_IS_OBJECT(m_element))
         return JSStringCreateWithCharacters(0, 0);
 
     const char* axOrientation = 0;
@@ -611,11 +628,10 @@
 
 double AccessibilityUIElement::intValue() const
 {
-    GValue value = G_VALUE_INIT;
-
     if (!ATK_IS_VALUE(m_element))
         return 0;
 
+    GValue value = G_VALUE_INIT;
     atk_value_get_current_value(ATK_VALUE(m_element), &value);
     if (!G_VALUE_HOLDS_FLOAT(&value))
         return 0;
@@ -624,11 +640,10 @@
 
 double AccessibilityUIElement::minValue()
 {
-    GValue value = G_VALUE_INIT;
-
     if (!ATK_IS_VALUE(m_element))
         return 0;
 
+    GValue value = G_VALUE_INIT;
     atk_value_get_minimum_value(ATK_VALUE(m_element), &value);
     if (!G_VALUE_HOLDS_FLOAT(&value))
         return 0;
@@ -637,11 +652,10 @@
 
 double AccessibilityUIElement::maxValue()
 {
-    GValue value = G_VALUE_INIT;
-
     if (!ATK_IS_VALUE(m_element))
         return 0;
 
+    GValue value = G_VALUE_INIT;
     atk_value_get_maximum_value(ATK_VALUE(m_element), &value);
     if (!G_VALUE_HOLDS_FLOAT(&value))
         return 0;
@@ -789,11 +803,9 @@
 {
     GOwnPtr<gchar> rangeString(g_strdup("{0, 0}"));
 
-    if (!element)
+    if (!ATK_IS_OBJECT(element))
         return JSStringCreateWithUTF8CString(rangeString.get());
 
-    ASSERT(ATK_IS_OBJECT(element));
-
     AtkObject* axTable = atk_object_get_parent(ATK_OBJECT(element));
     if (!axTable || !ATK_IS_TABLE(axTable))
         return JSStringCreateWithUTF8CString(rangeString.get());
@@ -875,11 +887,9 @@
 
 AccessibilityUIElement AccessibilityUIElement::cellForColumnAndRow(unsigned column, unsigned row)
 {
-    if (!m_element)
+    if (!ATK_IS_TABLE(m_element))
         return 0;
 
-    ASSERT(ATK_IS_TABLE(m_element));
-
     // Adopt the AtkObject representing the cell because
     // at_table_ref_at() transfers full ownership.
     GRefPtr<AtkObject> foundCell = adoptGRef(atk_table_ref_at(ATK_TABLE(m_element), row, column));
@@ -899,7 +909,7 @@
 
 JSStringRef AccessibilityUIElement::stringAttributeValue(JSStringRef attribute)
 {
-    if (!m_element)
+    if (!ATK_IS_OBJECT(m_element))
         return JSStringCreateWithCharacters(0, 0);
 
     String atkAttributeName = coreAttributeToAtkAttribute(attribute);
@@ -961,11 +971,9 @@
 
 static void alterCurrentValue(PlatformUIElement element, int factor)
 {
-    if (!element)
+    if (!ATK_IS_VALUE(element))
         return;
 
-    ASSERT(ATK_IS_VALUE(element));
-
     GValue currentValue = G_VALUE_INIT;
     atk_value_get_current_value(ATK_VALUE(element), &currentValue);
 
@@ -995,11 +1003,6 @@
 
 void AccessibilityUIElement::press()
 {
-    if (!m_element)
-        return;
-
-    ASSERT(ATK_IS_OBJECT(m_element));
-
     if (!ATK_IS_ACTION(m_element))
         return;
 
@@ -1050,6 +1053,9 @@
 
 JSStringRef AccessibilityUIElement::documentEncoding()
 {
+    if (!ATK_IS_DOCUMENT(m_element))
+        return JSStringCreateWithCharacters(0, 0);
+
     AtkRole role = atk_object_get_role(ATK_OBJECT(m_element));
     if (role != ATK_ROLE_DOCUMENT_FRAME)
         return JSStringCreateWithCharacters(0, 0);
@@ -1059,6 +1065,9 @@
 
 JSStringRef AccessibilityUIElement::documentURI()
 {
+    if (!ATK_IS_DOCUMENT(m_element))
+        return JSStringCreateWithCharacters(0, 0);
+
     AtkRole role = atk_object_get_role(ATK_OBJECT(m_element));
     if (role != ATK_ROLE_DOCUMENT_FRAME)
         return JSStringCreateWithCharacters(0, 0);
@@ -1149,7 +1158,7 @@
 
 bool AccessibilityUIElement::hasPopup() const
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element))
+    if (!ATK_IS_OBJECT(m_element))
         return false;
 
     return equalIgnoringCase(getAttributeSetValueForId(ATK_OBJECT(m_element), "haspopup"), "true");

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp (156530 => 156531)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2013-09-27 08:58:08 UTC (rev 156530)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp	2013-09-27 09:07:17 UTC (rev 156531)
@@ -112,7 +112,7 @@
 {
     GOwnPtr<gchar> rangeString(g_strdup("{0, 0}"));
 
-    if (!element || !ATK_IS_OBJECT(element.get()))
+    if (!ATK_IS_OBJECT(element.get()))
         return JSStringCreateWithUTF8CString(rangeString.get());
 
     AtkObject* axTable = atk_object_get_parent(ATK_OBJECT(element.get()));
@@ -148,7 +148,7 @@
 
 static void alterCurrentValue(PlatformUIElement element, int factor)
 {
-    if (!element || !ATK_IS_VALUE(element.get()))
+    if (!ATK_IS_VALUE(element.get()))
         return;
 
     GValue currentValue = G_VALUE_INIT;
@@ -372,7 +372,7 @@
 
 void AccessibilityUIElement::getChildren(Vector<RefPtr<AccessibilityUIElement> >& children)
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return;
 
     int count = childrenCount();
@@ -384,7 +384,7 @@
 
 void AccessibilityUIElement::getChildrenWithRange(Vector<RefPtr<AccessibilityUIElement> >& children, unsigned location, unsigned length)
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return;
     unsigned end = location + length;
     for (unsigned i = location; i < end; i++) {
@@ -395,7 +395,7 @@
 
 int AccessibilityUIElement::childrenCount()
 {
-    if (!m_element)
+    if (!ATK_IS_OBJECT(m_element.get()))
         return 0;
 
     return atk_object_get_n_accessible_children(ATK_OBJECT(m_element.get()));
@@ -403,7 +403,7 @@
 
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::elementAtPoint(int x, int y)
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_COMPONENT(m_element.get()))
         return 0;
 
     GRefPtr<AtkObject> objectAtPoint = adoptGRef(atk_component_ref_accessible_at_point(ATK_COMPONENT(m_element.get()), x, y, ATK_XY_WINDOW));
@@ -412,7 +412,7 @@
 
 unsigned AccessibilityUIElement::indexOfChild(AccessibilityUIElement* element)
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return 0;
 
     Vector<RefPtr<AccessibilityUIElement> > children;
@@ -428,6 +428,9 @@
 
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::childAtIndex(unsigned index)
 {
+    if (!ATK_IS_OBJECT(m_element.get()))
+        return 0;
+
     Vector<RefPtr<AccessibilityUIElement> > children;
     getChildrenWithRange(children, index, 1);
 
@@ -487,7 +490,7 @@
 
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::titleUIElement()
 {
-    if (!m_element)
+    if (!ATK_IS_OBJECT(m_element.get()))
         return 0;
 
     AtkRelationSet* set = atk_object_ref_relation_set(ATK_OBJECT(m_element.get()));
@@ -511,7 +514,7 @@
 
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::parentElement()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return 0;
 
     AtkObject* parent = atk_object_get_parent(ATK_OBJECT(m_element.get()));
@@ -538,6 +541,9 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::attributesOfChildren()
 {
+    if (!ATK_IS_OBJECT(m_element.get()))
+        return JSStringCreateWithCharacters(0, 0);
+
     Vector<RefPtr<AccessibilityUIElement> > children;
     getChildren(children);
 
@@ -552,7 +558,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::allAttributes()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     return JSStringCreateWithUTF8CString(attributesOfElement(this).utf8().data());
@@ -560,7 +566,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::stringAttributeValue(JSStringRef attribute)
 {
-    if (!m_element)
+    if (!ATK_IS_OBJECT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     String atkAttributeName = coreAttributeToAtkAttribute(attribute);
@@ -634,7 +640,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::role()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     AtkRole role = atk_object_get_role(ATK_OBJECT(m_element.get()));
@@ -659,7 +665,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::title()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     const gchar* name = atk_object_get_name(ATK_OBJECT(m_element.get()));
@@ -670,7 +676,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::description()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     const gchar* description = atk_object_get_description(ATK_OBJECT(m_element.get()));
@@ -684,7 +690,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::orientation() const
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     const gchar* axOrientation = 0;
@@ -701,7 +707,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::stringValue()
 {
-    if (!m_element || !ATK_IS_TEXT(m_element.get()))
+    if (!ATK_IS_TEXT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     GOwnPtr<gchar> text(atk_text_get_text(ATK_TEXT(m_element.get()), 0, -1));
@@ -713,7 +719,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::language()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     const gchar* locale = atk_object_get_object_locale(ATK_OBJECT(m_element.get()));
@@ -734,7 +740,7 @@
 
 double AccessibilityUIElement::x()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_COMPONENT(m_element.get()))
         return 0;
 
     int x, y;
@@ -744,7 +750,7 @@
 
 double AccessibilityUIElement::y()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_COMPONENT(m_element.get()))
         return 0;
 
     int x, y;
@@ -754,7 +760,7 @@
 
 double AccessibilityUIElement::width()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_COMPONENT(m_element.get()))
         return 0;
 
     int width, height;
@@ -764,7 +770,7 @@
 
 double AccessibilityUIElement::height()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_COMPONENT(m_element.get()))
         return 0;
 
     int width, height;
@@ -786,7 +792,7 @@
 
 double AccessibilityUIElement::intValue() const
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_VALUE(m_element.get()))
         return 0;
 
     GValue value = G_VALUE_INIT;
@@ -799,7 +805,7 @@
 
 double AccessibilityUIElement::minValue()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_VALUE(m_element.get()))
         return 0;
 
     GValue value = G_VALUE_INIT;
@@ -812,7 +818,7 @@
 
 double AccessibilityUIElement::maxValue()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_VALUE(m_element.get()))
         return 0;
 
     GValue value = G_VALUE_INIT;
@@ -994,7 +1000,7 @@
 
 int AccessibilityUIElement::rowCount()
 {
-    if (!m_element || !ATK_IS_TABLE(m_element.get()))
+    if (!ATK_IS_TABLE(m_element.get()))
         return 0;
 
     return atk_table_get_n_rows(ATK_TABLE(m_element.get()));
@@ -1002,7 +1008,7 @@
 
 int AccessibilityUIElement::columnCount()
 {
-    if (!m_element || !ATK_IS_TABLE(m_element.get()))
+    if (!ATK_IS_TABLE(m_element.get()))
         return 0;
 
     return atk_table_get_n_columns(ATK_TABLE(m_element.get()));
@@ -1028,7 +1034,7 @@
 
 PassRefPtr<AccessibilityUIElement> AccessibilityUIElement::cellForColumnAndRow(unsigned col, unsigned row)
 {
-    if (!m_element || !ATK_IS_TABLE(m_element.get()))
+    if (!ATK_IS_TABLE(m_element.get()))
         return 0;
 
     // Adopt the AtkObject representing the cell because
@@ -1077,9 +1083,6 @@
 
 void AccessibilityUIElement::press()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
-        return;
-
     if (!ATK_IS_ACTION(m_element.get()))
         return;
 
@@ -1100,7 +1103,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::documentEncoding()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_DOCUMENT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     AtkRole role = atk_object_get_role(ATK_OBJECT(m_element.get()));
@@ -1112,7 +1115,7 @@
 
 JSRetainPtr<JSStringRef> AccessibilityUIElement::documentURI()
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_DOCUMENT(m_element.get()))
         return JSStringCreateWithCharacters(0, 0);
 
     AtkRole role = atk_object_get_role(ATK_OBJECT(m_element.get()));
@@ -1193,7 +1196,7 @@
 
 bool AccessibilityUIElement::hasPopup() const
 {
-    if (!m_element || !ATK_IS_OBJECT(m_element.get()))
+    if (!ATK_IS_OBJECT(m_element.get()))
         return false;
 
     return equalIgnoringCase(getAttributeSetValueForId(ATK_OBJECT(m_element.get()), "haspopup"), "true");
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to