Index: content/browser/accessibility/browser_accessibility_manager.h |
diff --git a/content/browser/accessibility/browser_accessibility_manager.h b/content/browser/accessibility/browser_accessibility_manager.h |
index c3f0430935fc958d8f524da16efe5bc90d517c07..5001908b2cd9ca94b724fdc6e69ee9a3c06cd239 100644 |
--- a/content/browser/accessibility/browser_accessibility_manager.h |
+++ b/content/browser/accessibility/browser_accessibility_manager.h |
@@ -13,7 +13,7 @@ |
#include "content/common/content_export.h" |
#include "third_party/WebKit/public/web/WebAXEnums.h" |
#include "ui/accessibility/ax_node_data.h" |
-#include "ui/accessibility/ax_tree.h" |
+#include "ui/accessibility/ax_serializable_tree.h" |
#include "ui/accessibility/ax_tree_update.h" |
#include "ui/gfx/native_widget_types.h" |
@@ -22,6 +22,7 @@ struct AccessibilityHostMsg_LocationChangeParams; |
namespace content { |
class BrowserAccessibility; |
+class BrowserAccessibilityManager; |
#if defined(OS_ANDROID) |
class BrowserAccessibilityManagerAndroid; |
#endif |
@@ -42,6 +43,12 @@ CONTENT_EXPORT ui::AXTreeUpdate MakeAXTreeUpdate( |
const ui::AXNodeData& node9 = ui::AXNodeData()); |
// Class that can perform actions on behalf of the BrowserAccessibilityManager. |
+// Note: BrowserAccessibilityManager should never cache any of the return |
Charlie Reis
2014/08/25 20:58:43
Nice.
|
+// values from any of these interfaces, especially those that return pointers. |
+// They may only be valid within this call stack. That policy eliminates any |
+// concerns about ownership and lifecycle issues; none of these interfaces |
+// transfer ownership and no return values are guaranteed to be valid outside |
+// of the current call stack. |
class CONTENT_EXPORT BrowserAccessibilityDelegate { |
public: |
virtual ~BrowserAccessibilityDelegate() {} |
@@ -63,6 +70,9 @@ class CONTENT_EXPORT BrowserAccessibilityDelegate { |
virtual void AccessibilityFatalError() = 0; |
virtual gfx::AcceleratedWidget AccessibilityGetAcceleratedWidget() = 0; |
virtual gfx::NativeViewAccessible AccessibilityGetNativeViewAccessible() = 0; |
+ virtual BrowserAccessibilityManager* AccessibilityGetChildFrame( |
+ int64 frame_tree_node_id) = 0; |
+ virtual BrowserAccessibilityManager* AccessibilityGetParentFrame() = 0; |
}; |
class CONTENT_EXPORT BrowserAccessibilityFactory { |
@@ -189,6 +199,13 @@ class CONTENT_EXPORT BrowserAccessibilityManager : public ui::AXTreeDelegate { |
delegate_ = delegate; |
} |
+ // Get a snapshot of the current tree as an AXTreeUpdate. |
+ ui::AXTreeUpdate SnapshotAXTreeForTesting(); |
+ |
+ // Frame tree support. |
+ void SetChildFrameTreeNodeId(int32 node_id, int64 child_frame_tree_node_id); |
+ BrowserAccessibility* GetCrossFrameParent(); |
+ |
protected: |
BrowserAccessibilityManager( |
BrowserAccessibilityDelegate* delegate, |
@@ -225,21 +242,6 @@ class CONTENT_EXPORT BrowserAccessibilityManager : public ui::AXTreeDelegate { |
OSK_ALLOWED |
}; |
- // Update a set of nodes using data received from the renderer |
- // process. |
- bool UpdateNodes(const std::vector<ui::AXNodeData>& nodes); |
- |
- // Update one node from the tree using data received from the renderer |
- // process. Returns true on success, false on fatal error. |
- bool UpdateNode(const ui::AXNodeData& src); |
- |
- void SetRoot(BrowserAccessibility* root); |
- |
- BrowserAccessibility* CreateNode( |
- BrowserAccessibility* parent, |
- int32 id, |
- int32 index_in_parent); |
- |
protected: |
// The object that can perform actions on our behalf. |
BrowserAccessibilityDelegate* delegate_; |
@@ -248,7 +250,7 @@ class CONTENT_EXPORT BrowserAccessibilityManager : public ui::AXTreeDelegate { |
scoped_ptr<BrowserAccessibilityFactory> factory_; |
// The underlying tree of accessibility objects. |
- scoped_ptr<ui::AXTree> tree_; |
+ scoped_ptr<ui::AXSerializableTree> tree_; |
// The node that currently has focus. |
ui::AXNode* focus_; |