Title: [95491] trunk/Source/WebKit/chromium
Revision
95491
Author
[email protected]
Date
2011-09-19 16:04:11 -0700 (Mon, 19 Sep 2011)

Log Message

Expose AXObjectCache methods so that WebAccessibilityCache
can be deleted.
https://bugs.webkit.org/show_bug.cgi?id=68225

Patch by Dominic Mazzoni <[email protected]> on 2011-09-19
Reviewed by Dimitri Glazkov.

This patch exposes the functionality needed from AXObjectCache
with new methods in WebAccessibilityObject and WebDocument.
Next, Chromium will be updated to use only these methods and
not WebAccessibilityCache. Then, WebAccessibilityCache can be
deleted from WebKit.

* public/WebAccessibilityObject.h:
* public/WebDocument.h:
* src/WebAccessibilityObject.cpp:
(WebKit::WebAccessibilityObject::enableAccessibility):
(WebKit::WebAccessibilityObject::accessibilityEnabled):
(WebKit::WebAccessibilityObject::axID):
* src/WebDocument.cpp:
(WebKit::WebDocument::accessibilityObject):
(WebKit::WebDocument::accessibilityObjectFromID):

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (95490 => 95491)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-09-19 23:02:52 UTC (rev 95490)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-09-19 23:04:11 UTC (rev 95491)
@@ -1,3 +1,27 @@
+2011-09-19  Dominic Mazzoni  <[email protected]>
+
+        Expose AXObjectCache methods so that WebAccessibilityCache
+        can be deleted.
+        https://bugs.webkit.org/show_bug.cgi?id=68225
+
+        Reviewed by Dimitri Glazkov.
+
+        This patch exposes the functionality needed from AXObjectCache
+        with new methods in WebAccessibilityObject and WebDocument.
+        Next, Chromium will be updated to use only these methods and
+        not WebAccessibilityCache. Then, WebAccessibilityCache can be
+        deleted from WebKit.
+
+        * public/WebAccessibilityObject.h:
+        * public/WebDocument.h:
+        * src/WebAccessibilityObject.cpp:
+        (WebKit::WebAccessibilityObject::enableAccessibility):
+        (WebKit::WebAccessibilityObject::accessibilityEnabled):
+        (WebKit::WebAccessibilityObject::axID):
+        * src/WebDocument.cpp:
+        (WebKit::WebDocument::accessibilityObject):
+        (WebKit::WebDocument::accessibilityObjectFromID):
+
 2011-09-19  Bill Budge  <[email protected]>
 
         Perform HTTP method and header validation in AssociatedURLLoader for

Modified: trunk/Source/WebKit/chromium/public/WebAccessibilityObject.h (95490 => 95491)


--- trunk/Source/WebKit/chromium/public/WebAccessibilityObject.h	2011-09-19 23:02:52 UTC (rev 95490)
+++ trunk/Source/WebKit/chromium/public/WebAccessibilityObject.h	2011-09-19 23:04:11 UTC (rev 95491)
@@ -70,6 +70,12 @@
 
     bool isNull() const { return m_private.isNull(); }
 
+    // Static methods for enabling accessibility.
+    WEBKIT_EXPORT static void enableAccessibility();
+    WEBKIT_EXPORT static bool accessibilityEnabled();
+
+    WEBKIT_EXPORT int axID() const;
+
     WEBKIT_EXPORT WebString accessibilityDescription() const;
     WEBKIT_EXPORT WebString actionVerb() const;
     WEBKIT_EXPORT bool canSetFocusAttribute() const;

Modified: trunk/Source/WebKit/chromium/public/WebDocument.h (95490 => 95491)


--- trunk/Source/WebKit/chromium/public/WebDocument.h	2011-09-19 23:02:52 UTC (rev 95490)
+++ trunk/Source/WebKit/chromium/public/WebDocument.h	2011-09-19 23:04:11 UTC (rev 95491)
@@ -98,9 +98,17 @@
     WEBKIT_EXPORT WebElement getElementById(const WebString&) const;
     WEBKIT_EXPORT WebNode focusedNode() const;
     WEBKIT_EXPORT WebDocumentType doctype() const;
-    WEBKIT_EXPORT WebAccessibilityObject accessibilityObject() const;
     WEBKIT_EXPORT void cancelFullScreen();
 
+    // Accessibility support. These methods should only be called on the
+    // top-level document, because one accessibility cache spans all of
+    // the documents on the page.
+
+    // Gets the accessibility object for this document.
+    WEBKIT_EXPORT WebAccessibilityObject accessibilityObject() const;
+
+    // Gets the accessibility object for an object on this page by ID.
+    WEBKIT_EXPORT WebAccessibilityObject accessibilityObjectFromID(int axID) const;
     // Inserts the given CSS source code as a user stylesheet in the document.
     // Meant for programatic/one-off injection, as opposed to
     // WebView::addUserStyleSheet which inserts styles for the lifetime of the

Modified: trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp (95490 => 95491)


--- trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp	2011-09-19 23:02:52 UTC (rev 95490)
+++ trunk/Source/WebKit/chromium/src/WebAccessibilityObject.cpp	2011-09-19 23:04:11 UTC (rev 95491)
@@ -31,6 +31,7 @@
 #include "config.h"
 #include "WebAccessibilityObject.h"
 
+#include "AXObjectCache.h"
 #include "AccessibilityObject.h"
 #include "AccessibilityTable.h"
 #include "AccessibilityTableCell.h"
@@ -69,6 +70,27 @@
     return (m_private.get() == n.m_private.get());
 }
 
+// static
+void WebAccessibilityObject::enableAccessibility()
+{
+    AXObjectCache::enableAccessibility();
+}
+
+// static
+bool WebAccessibilityObject::accessibilityEnabled()
+{
+    return AXObjectCache::accessibilityEnabled();
+}
+
+int WebAccessibilityObject::axID() const
+{
+    if (m_private.isNull())
+        return -1;
+
+    m_private->updateBackingStore();
+    return m_private->axObjectID();
+}
+
 WebString WebAccessibilityObject::accessibilityDescription() const
 {
     if (m_private.isNull())

Modified: trunk/Source/WebKit/chromium/src/WebDocument.cpp (95490 => 95491)


--- trunk/Source/WebKit/chromium/src/WebDocument.cpp	2011-09-19 23:02:52 UTC (rev 95490)
+++ trunk/Source/WebKit/chromium/src/WebDocument.cpp	2011-09-19 23:04:11 UTC (rev 95491)
@@ -172,13 +172,6 @@
     return WebDocumentType(constUnwrap<Document>()->doctype());
 }
 
-WebAccessibilityObject WebDocument::accessibilityObject() const
-{
-    const Document* document = constUnwrap<Document>();
-    return WebAccessibilityObject(
-        document->axObjectCache()->getOrCreate(document->renderer()));
-}
-
 void WebDocument::insertUserStyleSheet(const WebString& sourceCode, UserStyleLevel level)
 {
     RefPtr<Document> document = unwrap<Document>();
@@ -196,6 +189,20 @@
 #endif
 }
 
+WebAccessibilityObject WebDocument::accessibilityObject() const
+{
+    const Document* document = constUnwrap<Document>();
+    return WebAccessibilityObject(
+        document->axObjectCache()->getOrCreate(document->renderer()));
+}
+
+WebAccessibilityObject WebDocument::accessibilityObjectFromID(int axID) const
+{
+    const Document* document = constUnwrap<Document>();
+    return WebAccessibilityObject(
+        document->axObjectCache()->objectFromAXID(axID));
+}
+
 WebDocument::WebDocument(const PassRefPtr<Document>& elem)
     : WebNode(elem)
 {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to