Chromium: WebAccessibilityObject should expose updateBackingStore
authordmazzoni@google.com <dmazzoni@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 25 Aug 2012 00:34:02 +0000 (00:34 +0000)
committerdmazzoni@google.com <dmazzoni@google.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 25 Aug 2012 00:34:02 +0000 (00:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=94611

Reviewed by Chris Fleizach.

This change just exposes a method, with no new tests. Next, Chromium
will be modified to call this new method, and this will be followed
by a change that gets rid of calls to updateBackingStore under the
hood. That last change may add a test or update an existing test.

* public/WebAccessibilityObject.h:
(WebAccessibilityObject):
* src/WebAccessibilityObject.cpp:
(WebKit::WebAccessibilityObject::updateBackingStoreAndCheckValidity):
(WebKit):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@126662 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebAccessibilityObject.h
Source/WebKit/chromium/src/WebAccessibilityObject.cpp

index 0809512..8222683 100644 (file)
@@ -1,3 +1,21 @@
+2012-08-24  Dominic Mazzoni  <dmazzoni@google.com>
+
+        Chromium: WebAccessibilityObject should expose updateBackingStore
+        https://bugs.webkit.org/show_bug.cgi?id=94611
+
+        Reviewed by Chris Fleizach.
+
+        This change just exposes a method, with no new tests. Next, Chromium
+        will be modified to call this new method, and this will be followed
+        by a change that gets rid of calls to updateBackingStore under the
+        hood. That last change may add a test or update an existing test.
+
+        * public/WebAccessibilityObject.h:
+        (WebAccessibilityObject):
+        * src/WebAccessibilityObject.cpp:
+        (WebKit::WebAccessibilityObject::updateBackingStoreAndCheckValidity):
+        (WebKit):
+
 2012-08-24  W. James MacLean  <wjmaclean@chromium.org>
 
         [chromium] WebViewImpl::enableTouchHighlight() should always clear any existing highlight when invoked.
index 029f438..e0c2888 100644 (file)
@@ -69,6 +69,7 @@ public:
     WEBKIT_EXPORT bool equals(const WebAccessibilityObject&) const;
 
     bool isNull() const { return m_private.isNull(); }
+    // isDetached also checks for null, so it's safe to just call isDetached.
     WEBKIT_EXPORT bool isDetached() const;
 
     // Static methods for enabling accessibility.
@@ -77,6 +78,13 @@ public:
 
     WEBKIT_EXPORT int axID() const;
 
+    // Update the underlying tree, and return true if this object is
+    // still valid (not detached). Note that calling this method
+    // can cause other WebAccessibilityObjects to become invalid, too,
+    // so always call isDetached if updateBackingStoreAndCheckValidity
+    // has been called on any object, or if any other WebCore code has run.
+    WEBKIT_EXPORT bool updateBackingStoreAndCheckValidity();
+
     WEBKIT_EXPORT WebString accessibilityDescription() const;
     WEBKIT_EXPORT WebString actionVerb() const;
     WEBKIT_EXPORT bool canSetFocusAttribute() const;
index 1eb69d2..e9a97e8 100644 (file)
@@ -99,6 +99,13 @@ int WebAccessibilityObject::axID() const
     return m_private->axObjectID();
 }
 
+bool WebAccessibilityObject::updateBackingStoreAndCheckValidity()
+{
+    if (!isDetached())
+        m_private->updateBackingStore();
+    return !isDetached();
+}
+
 WebString WebAccessibilityObject::accessibilityDescription() const
 {
     if (isDetached())