[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

cfleizach at apple.com cfleizach at apple.com
Wed Dec 22 11:28:45 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 23edd85f05791cf3dd463e2a2c3037230fbd2dd9
Author: cfleizach at apple.com <cfleizach at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Jul 26 22:49:18 2010 +0000

    AX: remove intValue() hasIntValue() from AccessibilityObject
    https://bugs.webkit.org/show_bug.cgi?id=43006
    
    Reviewed by Darin Adler.
    
    These methods are very Mac centric. The mac centric code should be moved into the Mac wrapper.
    
    No new tests, existing tests cover changes to logic.
    
    * accessibility/AccessibilityObject.cpp:
    (WebCore::AccessibilityObject::checkboxOrRadioValue):
    * accessibility/AccessibilityObject.h:
    (WebCore::):
    * accessibility/AccessibilityRenderObject.cpp:
    (WebCore::AccessibilityRenderObject::selectedRadioButton):
    (WebCore::AccessibilityRenderObject::selectedTabItem):
    (WebCore::AccessibilityRenderObject::checkboxOrRadioValue):
    * accessibility/AccessibilityRenderObject.h:
    * accessibility/mac/AccessibilityObjectWrapper.mm:
    (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64084 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index bde677a..a070726 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,26 @@
+2010-07-26  Chris Fleizach  <cfleizach at apple.com>
+
+        Reviewed by Darin Adler.
+
+        AX: remove intValue() hasIntValue() from AccessibilityObject
+        https://bugs.webkit.org/show_bug.cgi?id=43006
+
+        These methods are very Mac centric. The mac centric code should be moved into the Mac wrapper.
+
+        No new tests, existing tests cover changes to logic.
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::checkboxOrRadioValue):
+        * accessibility/AccessibilityObject.h:
+        (WebCore::):
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::selectedRadioButton):
+        (WebCore::AccessibilityRenderObject::selectedTabItem):
+        (WebCore::AccessibilityRenderObject::checkboxOrRadioValue):
+        * accessibility/AccessibilityRenderObject.h:
+        * accessibility/mac/AccessibilityObjectWrapper.mm:
+        (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
+
 2010-07-26  Ryosuke Niwa  <rniwa at webkit.org>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/accessibility/AccessibilityObject.cpp b/WebCore/accessibility/AccessibilityObject.cpp
index bc4e2f5..6c891b8 100644
--- a/WebCore/accessibility/AccessibilityObject.cpp
+++ b/WebCore/accessibility/AccessibilityObject.cpp
@@ -977,31 +977,16 @@ bool AccessibilityObject::supportsARIALiveRegion() const
     return equalIgnoringCase(liveRegion, "polite") || equalIgnoringCase(liveRegion, "assertive");
 }
     
-int AccessibilityObject::intValue() const
+AccessibilityButtonState AccessibilityObject::checkboxOrRadioValue() const
 {
-    if (isPasswordField())
-        return 0;
-    
-    if (isHeading())
-        return headingLevel();
-    
     // If this is a real checkbox or radio button, AccessibilityRenderObject will handle.
     // If it's an ARIA checkbox or radio, the aria-checked attribute should be used.
-    if (isCheckboxOrRadio())
-        return equalIgnoringCase(getAttribute(aria_checkedAttr), "true");
-    
-    return 0;
-}
 
-bool AccessibilityObject::hasIntValue() const
-{
-    if (isHeading())
-        return true;
+    const AtomicString& result = getAttribute(aria_checkedAttr);
+    if (equalIgnoringCase(result, "true"))
+        return ButtonStateOn;
     
-    if (isCheckboxOrRadio())
-        return true;
-    
-    return false;
+    return ButtonStateOff;
 }
     
 } // namespace WebCore
diff --git a/WebCore/accessibility/AccessibilityObject.h b/WebCore/accessibility/AccessibilityObject.h
index 400a200..f1e785b 100644
--- a/WebCore/accessibility/AccessibilityObject.h
+++ b/WebCore/accessibility/AccessibilityObject.h
@@ -209,6 +209,11 @@ enum AccessibilityObjectInclusion {
     IgnoreObject,
     DefaultBehavior,
 };
+    
+enum AccessibilityButtonState {
+    ButtonStateOff = 0,
+    ButtonStateOn, 
+};
 
 struct VisiblePositionRange {
 
@@ -327,9 +332,6 @@ public:
     virtual bool canSetSelectedChildrenAttribute() const { return false; }
     virtual bool canSetExpandedAttribute() const { return false; }
     
-    bool hasIntValue() const;
-    virtual int intValue() const;
-    
     // A programmatic way to set a name on an AccessibleObject.
     virtual void setAccessibleName(String&) { }
     
@@ -338,6 +340,7 @@ public:
     virtual bool accessibilityIsIgnored() const  { return true; }
 
     virtual int headingLevel() const { return 0; }
+    virtual AccessibilityButtonState checkboxOrRadioValue() const;
     virtual String valueDescription() const { return String(); }
     virtual float valueForRange() const { return 0.0f; }
     virtual float maxValueForRange() const { return 0.0f; }
diff --git a/WebCore/accessibility/AccessibilityRenderObject.cpp b/WebCore/accessibility/AccessibilityRenderObject.cpp
index 1b3c461..3f7235d 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.cpp
+++ b/WebCore/accessibility/AccessibilityRenderObject.cpp
@@ -724,7 +724,7 @@ AccessibilityObject* AccessibilityRenderObject::selectedRadioButton()
     int count = m_children.size();
     for (int i = 0; i < count; ++i) {
         AccessibilityObject* object = m_children[i].get();
-        if (object->roleValue() == RadioButtonRole && object->intValue() == 1)
+        if (object->roleValue() == RadioButtonRole && object->checkboxOrRadioValue() == ButtonStateOn)
             return object;
     }
     return 0;
@@ -742,7 +742,7 @@ AccessibilityObject* AccessibilityRenderObject::selectedTabItem()
     int count = tabs.size();
     for (int i = 0; i < count; ++i) {
         AccessibilityObject* object = m_children[i].get();
-        if (object->isTabItem() && object->intValue() == 1)
+        if (object->isTabItem() && object->isChecked())
             return object;
     }
     return 0;
@@ -1009,12 +1009,9 @@ Node* AccessibilityRenderObject::node() const
     return m_renderer ? m_renderer->node() : 0; 
 }    
     
-int AccessibilityRenderObject::intValue() const
+AccessibilityButtonState AccessibilityRenderObject::checkboxOrRadioValue() const
 {
-    if (isCheckboxOrRadio())
-        return isChecked() ? 1 : 0;
-
-    return AccessibilityObject::intValue();
+    return isChecked() ? ButtonStateOn : ButtonStateOff;
 }
 
 String AccessibilityRenderObject::valueDescription() const
diff --git a/WebCore/accessibility/AccessibilityRenderObject.h b/WebCore/accessibility/AccessibilityRenderObject.h
index 526324f..c3d2b87 100644
--- a/WebCore/accessibility/AccessibilityRenderObject.h
+++ b/WebCore/accessibility/AccessibilityRenderObject.h
@@ -117,7 +117,7 @@ public:
     virtual bool accessibilityIsIgnored() const;
     
     virtual int headingLevel() const;
-    virtual int intValue() const;
+    virtual AccessibilityButtonState checkboxOrRadioValue() const;
     virtual String valueDescription() const;
     virtual float valueForRange() const;
     virtual float maxValueForRange() const;
diff --git a/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm b/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
index a711116..c2c005c 100644
--- a/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
+++ b/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
@@ -1515,8 +1515,17 @@ static NSString* roleValueToNSString(AccessibilityRole value)
         }
         if (m_object->isProgressIndicator() || m_object->isSlider() || m_object->isScrollbar())
             return [NSNumber numberWithFloat:m_object->valueForRange()];
-        if (m_object->hasIntValue())
-            return [NSNumber numberWithInt:m_object->intValue()];
+        if (m_object->isHeading())
+            return [NSNumber numberWithInt:m_object->headingLevel()];
+        
+        if (m_object->isCheckboxOrRadio()) {
+            switch (m_object->checkboxOrRadioValue()) {
+            case ButtonStateOff:
+                return [NSNumber numberWithInt:0];
+            case ButtonStateOn:
+                return [NSNumber numberWithInt:1];
+            }
+        }
 
         // radio groups return the selected radio button as the AXValue
         if (m_object->isRadioGroup()) {

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list