Index: content/browser/accessibility/browser_accessibility_com_win.h |
diff --git a/content/browser/accessibility/browser_accessibility_win.h b/content/browser/accessibility/browser_accessibility_com_win.h |
similarity index 76% |
copy from content/browser/accessibility/browser_accessibility_win.h |
copy to content/browser/accessibility/browser_accessibility_com_win.h |
index 1ebf93102c34b58a34882ba44f9da74ca4f05ab5..32971774b35171aca44825f00ce50874e3f0cb56 100644 |
--- a/content/browser/accessibility/browser_accessibility_win.h |
+++ b/content/browser/accessibility/browser_accessibility_com_win.h |
@@ -1,23 +1,24 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2017 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_WIN_H_ |
-#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_WIN_H_ |
+#ifndef CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COM_WIN_H_ |
+#define CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COM_WIN_H_ |
#include <atlbase.h> |
#include <atlcom.h> |
#include <oleacc.h> |
#include <stddef.h> |
#include <stdint.h> |
-#include <UIAutomationCore.h> |
- |
#include <vector> |
+#include <UIAutomationCore.h> |
+ |
#include "base/compiler_specific.h" |
#include "base/gtest_prod_util.h" |
#include "base/macros.h" |
#include "content/browser/accessibility/browser_accessibility.h" |
+#include "content/browser/accessibility/browser_accessibility_win.h" |
#include "content/common/content_export.h" |
#include "third_party/iaccessible2/ia2_api_all.h" |
#include "third_party/isimpledom/ISimpleDOMDocument.h" |
@@ -25,59 +26,59 @@ |
#include "third_party/isimpledom/ISimpleDOMText.h" |
#include "ui/accessibility/platform/ax_platform_node_win.h" |
+namespace ui { |
+enum TextBoundaryDirection; |
+enum TextBoundaryType; |
+} |
+ |
namespace content { |
+class BrowserAccessibilityWin; |
class BrowserAccessibilityRelation; |
//////////////////////////////////////////////////////////////////////////////// |
// |
-// BrowserAccessibilityWin |
+// BrowserAccessibilityComWin |
// |
-// Class implementing the windows accessible interface for the Browser-Renderer |
-// communication of accessibility information, providing accessibility |
-// to be used by screen readers and other assistive technology (AT). |
+// Class implementing the windows accessible interface used by screen readers |
+// and other assistive technology (AT). It typically is created and owned by |
+// a BrowserAccessibilityWin |owner_|. When this owner goes away, the |
+// BrowserAccessibilityComWin objects may continue to exists being held onto by |
+// MSCOM (due to reference counting). However, such objects are invalid and |
+// should gracefully fail by returning E_FAIL from all MSCOM methods. |
// |
//////////////////////////////////////////////////////////////////////////////// |
class __declspec(uuid("562072fe-3390-43b1-9e2c-dd4118f5ac79")) |
-BrowserAccessibilityWin |
- : public BrowserAccessibility, |
- public CComObjectRootEx<CComMultiThreadModel>, |
- public IDispatchImpl<IAccessible2, &IID_IAccessible2, |
- &LIBID_IAccessible2Lib>, |
- public IAccessibleApplication, |
- public IAccessibleHyperlink, |
- public IAccessibleHypertext, |
- public IAccessibleImage, |
- public IAccessibleTable, |
- public IAccessibleTable2, |
- public IAccessibleTableCell, |
- public IAccessibleValue, |
- public IServiceProvider, |
- public ISimpleDOMDocument, |
- public ISimpleDOMNode, |
- public ISimpleDOMText, |
- public IAccessibleEx, |
- public IRawElementProviderSimple { |
+ BrowserAccessibilityComWin : public ui::AXPlatformNodeWin, |
+ public IAccessibleApplication, |
+ public IAccessibleHyperlink, |
+ public IAccessibleHypertext, |
+ public IAccessibleImage, |
+ public IAccessibleTable, |
+ public IAccessibleTable2, |
+ public IAccessibleTableCell, |
+ public IAccessibleValue, |
+ public ISimpleDOMDocument, |
+ public ISimpleDOMNode, |
+ public ISimpleDOMText, |
+ public IAccessibleEx, |
+ public IRawElementProviderSimple { |
public: |
- BEGIN_COM_MAP(BrowserAccessibilityWin) |
- COM_INTERFACE_ENTRY2(IDispatch, IAccessible2) |
- COM_INTERFACE_ENTRY(IAccessible) |
- COM_INTERFACE_ENTRY(IAccessible2) |
- COM_INTERFACE_ENTRY(IAccessibleAction) |
- COM_INTERFACE_ENTRY(IAccessibleApplication) |
- COM_INTERFACE_ENTRY(IAccessibleEx) |
- COM_INTERFACE_ENTRY(IAccessibleHyperlink) |
- COM_INTERFACE_ENTRY(IAccessibleHypertext) |
- COM_INTERFACE_ENTRY(IAccessibleImage) |
- COM_INTERFACE_ENTRY(IAccessibleTable) |
- COM_INTERFACE_ENTRY(IAccessibleTable2) |
- COM_INTERFACE_ENTRY(IAccessibleTableCell) |
- COM_INTERFACE_ENTRY(IAccessibleText) |
- COM_INTERFACE_ENTRY(IAccessibleValue) |
- COM_INTERFACE_ENTRY(IRawElementProviderSimple) |
- COM_INTERFACE_ENTRY(IServiceProvider) |
- COM_INTERFACE_ENTRY(ISimpleDOMDocument) |
- COM_INTERFACE_ENTRY(ISimpleDOMNode) |
- COM_INTERFACE_ENTRY(ISimpleDOMText) |
+ BEGIN_COM_MAP(BrowserAccessibilityComWin) |
+ COM_INTERFACE_ENTRY(IAccessibleAction) |
+ COM_INTERFACE_ENTRY(IAccessibleApplication) |
+ COM_INTERFACE_ENTRY(IAccessibleEx) |
+ COM_INTERFACE_ENTRY(IAccessibleHyperlink) |
+ COM_INTERFACE_ENTRY(IAccessibleHypertext) |
+ COM_INTERFACE_ENTRY(IAccessibleImage) |
+ COM_INTERFACE_ENTRY(IAccessibleTable) |
+ COM_INTERFACE_ENTRY(IAccessibleTable2) |
+ COM_INTERFACE_ENTRY(IAccessibleTableCell) |
+ COM_INTERFACE_ENTRY(IAccessibleValue) |
+ COM_INTERFACE_ENTRY(IRawElementProviderSimple) |
+ COM_INTERFACE_ENTRY(ISimpleDOMDocument) |
+ COM_INTERFACE_ENTRY(ISimpleDOMNode) |
+ COM_INTERFACE_ENTRY(ISimpleDOMText) |
+ COM_INTERFACE_ENTRY_CHAIN(ui::AXPlatformNodeWin) |
END_COM_MAP() |
// Represents a non-static text node in IAccessibleHypertext. This character |
@@ -90,9 +91,8 @@ BrowserAccessibilityWin |
static std::map<int32_t, base::string16> role_string_map; |
static std::map<int32_t, base::string16> state_string_map; |
- CONTENT_EXPORT BrowserAccessibilityWin(); |
- |
- CONTENT_EXPORT ~BrowserAccessibilityWin() override; |
+ CONTENT_EXPORT BrowserAccessibilityComWin(); |
+ CONTENT_EXPORT ~BrowserAccessibilityComWin() override; |
// Called after an atomic tree update completes. See |
// BrowserAccessibilityManagerWin::OnAtomicUpdateFinished for more |
@@ -101,20 +101,6 @@ BrowserAccessibilityWin |
CONTENT_EXPORT void UpdateStep2ComputeHypertext(); |
CONTENT_EXPORT void UpdateStep3FireEvents(bool is_subtree_creation); |
- // This is used to call UpdateStep1ComputeWinAttributes, ... above when |
- // a node needs to be updated for some other reason other than via |
- // OnAtomicUpdateFinished. |
- CONTENT_EXPORT void UpdatePlatformAttributes() override; |
- |
- // |
- // BrowserAccessibility methods. |
- // |
- CONTENT_EXPORT void OnSubtreeWillBeDeleted() override; |
- CONTENT_EXPORT void NativeAddReference() override; |
- CONTENT_EXPORT void NativeReleaseReference() override; |
- CONTENT_EXPORT bool IsNative() const override; |
- CONTENT_EXPORT void OnLocationChanged() override; |
- |
// |
// IAccessible methods. |
// |
@@ -123,8 +109,9 @@ BrowserAccessibilityWin |
CONTENT_EXPORT STDMETHODIMP accDoDefaultAction(VARIANT var_id) override; |
// Retrieves the child element or child object at a given point on the screen. |
- CONTENT_EXPORT STDMETHODIMP |
- accHitTest(LONG x_left, LONG y_top, VARIANT* child) override; |
+ CONTENT_EXPORT STDMETHODIMP accHitTest(LONG x_left, |
+ LONG y_top, |
+ VARIANT* child) override; |
// Retrieves the specified object's current screen location. |
CONTENT_EXPORT STDMETHODIMP accLocation(LONG* x_left, |
@@ -134,12 +121,13 @@ BrowserAccessibilityWin |
VARIANT var_id) override; |
// Traverses to another UI element and retrieves the object. |
- CONTENT_EXPORT STDMETHODIMP |
- accNavigate(LONG nav_dir, VARIANT start, VARIANT* end) override; |
+ CONTENT_EXPORT STDMETHODIMP accNavigate(LONG nav_dir, |
+ VARIANT start, |
+ VARIANT* end) override; |
// Retrieves an IDispatch interface pointer for the specified child. |
- CONTENT_EXPORT STDMETHODIMP |
- get_accChild(VARIANT var_child, IDispatch** disp_child) override; |
+ CONTENT_EXPORT STDMETHODIMP get_accChild(VARIANT var_child, |
+ IDispatch** disp_child) override; |
// Retrieves the number of accessible children. |
CONTENT_EXPORT STDMETHODIMP get_accChildCount(LONG* child_count) override; |
@@ -149,8 +137,8 @@ BrowserAccessibilityWin |
get_accDefaultAction(VARIANT var_id, BSTR* default_action) override; |
// Retrieves the object's description. |
- CONTENT_EXPORT STDMETHODIMP |
- get_accDescription(VARIANT var_id, BSTR* desc) override; |
+ CONTENT_EXPORT STDMETHODIMP get_accDescription(VARIANT var_id, |
+ BSTR* desc) override; |
// Retrieves the object that has the keyboard focus. |
CONTENT_EXPORT STDMETHODIMP get_accFocus(VARIANT* focus_child) override; |
@@ -169,31 +157,32 @@ BrowserAccessibilityWin |
CONTENT_EXPORT STDMETHODIMP get_accParent(IDispatch** disp_parent) override; |
// Retrieves information describing the role of the specified object. |
- CONTENT_EXPORT STDMETHODIMP |
- get_accRole(VARIANT var_id, VARIANT* role) override; |
+ CONTENT_EXPORT STDMETHODIMP get_accRole(VARIANT var_id, |
+ VARIANT* role) override; |
// Retrieves the current state of the specified object. |
- CONTENT_EXPORT STDMETHODIMP |
- get_accState(VARIANT var_id, VARIANT* state) override; |
+ CONTENT_EXPORT STDMETHODIMP get_accState(VARIANT var_id, |
+ VARIANT* state) override; |
// Returns the value associated with the object. |
- CONTENT_EXPORT STDMETHODIMP |
- get_accValue(VARIANT var_id, BSTR* value) override; |
+ CONTENT_EXPORT STDMETHODIMP get_accValue(VARIANT var_id, |
+ BSTR* value) override; |
// Make an object take focus or extend the selection. |
- CONTENT_EXPORT STDMETHODIMP |
- accSelect(LONG flags_sel, VARIANT var_id) override; |
+ CONTENT_EXPORT STDMETHODIMP accSelect(LONG flags_sel, |
+ VARIANT var_id) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_accHelpTopic(BSTR* help_file, VARIANT var_id, LONG* topic_id) override; |
+ CONTENT_EXPORT STDMETHODIMP get_accHelpTopic(BSTR* help_file, |
+ VARIANT var_id, |
+ LONG* topic_id) override; |
CONTENT_EXPORT STDMETHODIMP get_accSelection(VARIANT* selected) override; |
// Deprecated methods, not implemented. |
- CONTENT_EXPORT STDMETHODIMP |
- put_accName(VARIANT var_id, BSTR put_name) override; |
- CONTENT_EXPORT STDMETHODIMP |
- put_accValue(VARIANT var_id, BSTR put_val) override; |
+ CONTENT_EXPORT STDMETHODIMP put_accName(VARIANT var_id, |
+ BSTR put_name) override; |
+ CONTENT_EXPORT STDMETHODIMP put_accValue(VARIANT var_id, |
+ BSTR put_val) override; |
// |
// IAccessible2 methods. |
@@ -289,16 +278,18 @@ BrowserAccessibilityWin |
// get_description - also used by IAccessibleImage |
- CONTENT_EXPORT STDMETHODIMP |
- get_accessibleAt(long row, long column, IUnknown** accessible) override; |
+ CONTENT_EXPORT STDMETHODIMP get_accessibleAt(long row, |
+ long column, |
+ IUnknown** accessible) override; |
CONTENT_EXPORT STDMETHODIMP get_caption(IUnknown** accessible) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_childIndex(long row_index, long column_index, long* cell_index) override; |
+ CONTENT_EXPORT STDMETHODIMP get_childIndex(long row_index, |
+ long column_index, |
+ long* cell_index) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_columnDescription(long column, BSTR* description) override; |
+ CONTENT_EXPORT STDMETHODIMP get_columnDescription(long column, |
+ BSTR* description) override; |
CONTENT_EXPORT STDMETHODIMP |
get_columnExtentAt(long row, long column, long* n_columns_spanned) override; |
@@ -307,8 +298,8 @@ BrowserAccessibilityWin |
get_columnHeader(IAccessibleTable** accessible_table, |
long* starting_row_index) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_columnIndex(long cell_index, long* column_index) override; |
+ CONTENT_EXPORT STDMETHODIMP get_columnIndex(long cell_index, |
+ long* column_index) override; |
CONTENT_EXPORT STDMETHODIMP get_nColumns(long* column_count) override; |
@@ -320,18 +311,19 @@ BrowserAccessibilityWin |
CONTENT_EXPORT STDMETHODIMP get_nSelectedRows(long* row_count) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_rowDescription(long row, BSTR* description) override; |
+ CONTENT_EXPORT STDMETHODIMP get_rowDescription(long row, |
+ BSTR* description) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_rowExtentAt(long row, long column, long* n_rows_spanned) override; |
+ CONTENT_EXPORT STDMETHODIMP get_rowExtentAt(long row, |
+ long column, |
+ long* n_rows_spanned) override; |
CONTENT_EXPORT STDMETHODIMP |
get_rowHeader(IAccessibleTable** accessible_table, |
long* starting_column_index) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_rowIndex(long cell_index, long* row_index) override; |
+ CONTENT_EXPORT STDMETHODIMP get_rowIndex(long cell_index, |
+ long* row_index) override; |
CONTENT_EXPORT STDMETHODIMP get_selectedChildren(long max_children, |
long** children, |
@@ -341,19 +333,21 @@ BrowserAccessibilityWin |
long** columns, |
long* n_columns) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_selectedRows(long max_rows, long** rows, long* n_rows) override; |
+ CONTENT_EXPORT STDMETHODIMP get_selectedRows(long max_rows, |
+ long** rows, |
+ long* n_rows) override; |
CONTENT_EXPORT STDMETHODIMP get_summary(IUnknown** accessible) override; |
CONTENT_EXPORT STDMETHODIMP |
get_isColumnSelected(long column, boolean* is_selected) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_isRowSelected(long row, boolean* is_selected) override; |
+ CONTENT_EXPORT STDMETHODIMP get_isRowSelected(long row, |
+ boolean* is_selected) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_isSelected(long row, long column, boolean* is_selected) override; |
+ CONTENT_EXPORT STDMETHODIMP get_isSelected(long row, |
+ long column, |
+ boolean* is_selected) override; |
CONTENT_EXPORT STDMETHODIMP |
get_rowColumnExtentsAtIndex(long index, |
@@ -381,19 +375,20 @@ BrowserAccessibilityWin |
// unique ones are included here.) |
// |
- CONTENT_EXPORT STDMETHODIMP |
- get_cellAt(long row, long column, IUnknown** cell) override; |
+ CONTENT_EXPORT STDMETHODIMP get_cellAt(long row, |
+ long column, |
+ IUnknown** cell) override; |
CONTENT_EXPORT STDMETHODIMP get_nSelectedCells(long* cell_count) override; |
CONTENT_EXPORT STDMETHODIMP |
get_selectedCells(IUnknown*** cells, long* n_selected_cells) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_selectedColumns(long** columns, long* n_columns) override; |
+ CONTENT_EXPORT STDMETHODIMP get_selectedColumns(long** columns, |
+ long* n_columns) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_selectedRows(long** rows, long* n_rows) override; |
+ CONTENT_EXPORT STDMETHODIMP get_selectedRows(long** rows, |
+ long* n_rows) override; |
// |
// IAccessibleTableCell methods. |
@@ -449,8 +444,9 @@ BrowserAccessibilityWin |
LONG* start_offset, |
LONG* end_offset) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_text(LONG start_offset, LONG end_offset, BSTR* text) override; |
+ CONTENT_EXPORT STDMETHODIMP get_text(LONG start_offset, |
+ LONG end_offset, |
+ BSTR* text) override; |
CONTENT_EXPORT STDMETHODIMP |
get_textAtOffset(LONG offset, |
@@ -495,8 +491,8 @@ BrowserAccessibilityWin |
LONG x, |
LONG y) override; |
- CONTENT_EXPORT STDMETHODIMP |
- addSelection(LONG start_offset, LONG end_offset) override; |
+ CONTENT_EXPORT STDMETHODIMP addSelection(LONG start_offset, |
+ LONG end_offset) override; |
CONTENT_EXPORT STDMETHODIMP removeSelection(LONG selection_index) override; |
@@ -536,15 +532,15 @@ BrowserAccessibilityWin |
// IAccessibleAction mostly not implemented. |
CONTENT_EXPORT STDMETHODIMP nActions(long* n_actions) override; |
CONTENT_EXPORT STDMETHODIMP doAction(long action_index) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_description(long action_index, BSTR* description) override; |
+ CONTENT_EXPORT STDMETHODIMP get_description(long action_index, |
+ BSTR* description) override; |
CONTENT_EXPORT STDMETHODIMP get_keyBinding(long action_index, |
long n_max_bindings, |
BSTR** key_bindings, |
long* n_bindings) override; |
CONTENT_EXPORT STDMETHODIMP get_name(long action_index, BSTR* name) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_localizedName(long action_index, BSTR* localized_name) override; |
+ CONTENT_EXPORT STDMETHODIMP get_localizedName(long action_index, |
+ BSTR* localized_name) override; |
// |
// IAccessibleValue methods. |
@@ -625,8 +621,8 @@ BrowserAccessibilityWin |
CONTENT_EXPORT STDMETHODIMP get_nextSibling(ISimpleDOMNode** node) override; |
- CONTENT_EXPORT STDMETHODIMP |
- get_childAt(unsigned int child_index, ISimpleDOMNode** node) override; |
+ CONTENT_EXPORT STDMETHODIMP get_childAt(unsigned int child_index, |
+ ISimpleDOMNode** node) override; |
CONTENT_EXPORT STDMETHODIMP get_innerHTML(BSTR* innerHTML) override; |
@@ -666,15 +662,16 @@ BrowserAccessibilityWin |
// IServiceProvider methods. |
// |
- CONTENT_EXPORT STDMETHODIMP |
- QueryService(REFGUID guidService, REFIID riid, void** object) override; |
+ CONTENT_EXPORT STDMETHODIMP QueryService(REFGUID guidService, |
+ REFIID riid, |
+ void** object) override; |
// IAccessibleEx methods not implemented. |
- CONTENT_EXPORT STDMETHODIMP |
- GetObjectForChild(long child_id, IAccessibleEx** ret) override; |
+ CONTENT_EXPORT STDMETHODIMP GetObjectForChild(long child_id, |
+ IAccessibleEx** ret) override; |
- CONTENT_EXPORT STDMETHODIMP |
- GetIAccessiblePair(IAccessible** acc, long* child_id) override; |
+ CONTENT_EXPORT STDMETHODIMP GetIAccessiblePair(IAccessible** acc, |
+ long* child_id) override; |
CONTENT_EXPORT STDMETHODIMP GetRuntimeId(SAFEARRAY** runtime_id) override; |
@@ -687,10 +684,10 @@ BrowserAccessibilityWin |
// |
// The GetPatternProvider/GetPropertyValue methods need to be implemented for |
// the on-screen keyboard to show up in Windows 8 metro. |
- CONTENT_EXPORT STDMETHODIMP |
- GetPatternProvider(PATTERNID id, IUnknown** provider) override; |
- CONTENT_EXPORT STDMETHODIMP |
- GetPropertyValue(PROPERTYID id, VARIANT* ret) override; |
+ CONTENT_EXPORT STDMETHODIMP GetPatternProvider(PATTERNID id, |
+ IUnknown** provider) override; |
+ CONTENT_EXPORT STDMETHODIMP GetPropertyValue(PROPERTYID id, |
+ VARIANT* ret) override; |
// |
// IRawElementProviderSimple methods not implemented |
@@ -720,8 +717,6 @@ BrowserAccessibilityWin |
AXPlatformPosition::AXPositionInstance CreatePositionForSelectionAt( |
int offset) const; |
- CONTENT_EXPORT base::string16 GetText() const override; |
- |
// Accessors. |
int32_t ia_role() const { return win_attributes_->ia_role; } |
int32_t ia_state() const { return win_attributes_->ia_state; } |
@@ -746,25 +741,29 @@ BrowserAccessibilityWin |
} |
private: |
+ // Setter and getter for the browser accessibility owner |
+ BrowserAccessibilityWin* GetOwner() const { return owner_; } |
+ void SetOwner(BrowserAccessibilityWin* owner) { owner_ = owner; } |
+ |
// Returns the IA2 text attributes for this object. |
std::vector<base::string16> ComputeTextAttributes() const; |
// Add one to the reference count and return the same object. Always |
- // use this method when returning a BrowserAccessibilityWin object as |
+ // use this method when returning a BrowserAccessibilityComWin object as |
// an output parameter to a COM interface, never use it otherwise. |
- BrowserAccessibilityWin* NewReference(); |
+ BrowserAccessibilityComWin* NewReference(); |
// Returns a list of IA2 attributes indicating the offsets in the text of a |
// leaf object, such as a text field or static text, where spelling errors are |
// present. |
- std::map<int, std::vector<base::string16>> GetSpellingAttributes() const; |
+ std::map<int, std::vector<base::string16>> GetSpellingAttributes(); |
// Many MSAA methods take a var_id parameter indicating that the operation |
// should be performed on a particular child ID, rather than this object. |
// This method tries to figure out the target object from |var_id| and |
// returns a pointer to the target object if it exists, otherwise NULL. |
// Does not return a new reference. |
- BrowserAccessibilityWin* GetTargetFromChildID(const VARIANT& var_id); |
+ BrowserAccessibilityComWin* GetTargetFromChildID(const VARIANT& var_id); |
// Initialize the role and state metadata from the role enum and state |
// bitmasks defined in ui::AXNodeData. |
@@ -773,9 +772,8 @@ BrowserAccessibilityWin |
// Retrieve the value of an attribute from the string attribute map and |
// if found and nonempty, allocate a new BSTR (with SysAllocString) |
// and return S_OK. If not found or empty, return S_FALSE. |
- HRESULT GetStringAttributeAsBstr( |
- ui::AXStringAttribute attribute, |
- BSTR* value_bstr); |
+ HRESULT GetStringAttributeAsBstr(ui::AXStringAttribute attribute, |
+ BSTR* value_bstr); |
// Escapes characters in string attributes as required by the IA2 Spec. |
// It's okay for input to be the same as output. |
@@ -795,13 +793,11 @@ BrowserAccessibilityWin |
// If the bool attribute |attribute| is present, add its value as an |
// IAccessible2 attribute with the name |ia2_attr|. |
- void BoolAttributeToIA2(ui::AXBoolAttribute attribute, |
- const char* ia2_attr); |
+ void BoolAttributeToIA2(ui::AXBoolAttribute attribute, const char* ia2_attr); |
// If the int attribute |attribute| is present, add its value as an |
// IAccessible2 attribute with the name |ia2_attr|. |
- void IntAttributeToIA2(ui::AXIntAttribute attribute, |
- const char* ia2_attr); |
+ void IntAttributeToIA2(ui::AXIntAttribute attribute, const char* ia2_attr); |
// |
// Helper methods for IA2 hyperlinks. |
@@ -814,17 +810,16 @@ BrowserAccessibilityWin |
bool IsHyperlink() const; |
// Returns the hyperlink at the given text position, or nullptr if no |
// hyperlink can be found. |
- BrowserAccessibilityWin* GetHyperlinkFromHypertextOffset(int offset) const; |
+ BrowserAccessibilityComWin* GetHyperlinkFromHypertextOffset(int offset) const; |
// Functions for retrieving offsets for hyperlinks and hypertext. |
// Return -1 in case of failure. |
int32_t GetHyperlinkIndexFromChild( |
- const BrowserAccessibilityWin& child) const; |
+ const BrowserAccessibilityComWin& child) const; |
int32_t GetHypertextOffsetFromHyperlinkIndex(int32_t hyperlink_index) const; |
- int32_t GetHypertextOffsetFromChild( |
- const BrowserAccessibilityWin& child) const; |
+ int32_t GetHypertextOffsetFromChild(BrowserAccessibilityComWin& child); |
int32_t GetHypertextOffsetFromDescendant( |
- const BrowserAccessibilityWin& descendant) const; |
+ const BrowserAccessibilityComWin& descendant) const; |
// If the selection endpoint is either equal to or an ancestor of this object, |
// returns endpoint_offset. |
@@ -834,7 +829,7 @@ BrowserAccessibilityWin |
// Returns -1 in case of unexpected failure, e.g. the selection endpoint |
// cannot be found in the accessibility tree. |
int GetHypertextOffsetFromEndpoint( |
- const BrowserAccessibilityWin& endpoint_object, |
+ const BrowserAccessibilityComWin& endpoint_object, |
int endpoint_offset) const; |
// |
@@ -858,8 +853,9 @@ BrowserAccessibilityWin |
base::string16 GetValueText(); |
bool IsSameHypertextCharacter(size_t old_char_index, size_t new_char_index); |
- void ComputeHypertextRemovedAndInserted( |
- int* start, int* old_len, int* new_len); |
+ void ComputeHypertextRemovedAndInserted(int* start, |
+ int* old_len, |
+ int* new_len); |
// If offset is a member of IA2TextSpecialOffsets this function updates the |
// value of offset and returns, otherwise offset remains unchanged. |
@@ -885,7 +881,7 @@ BrowserAccessibilityWin |
// ID refers to the node ID in the current tree, not the globally unique ID. |
// TODO(nektar): Could we use globally unique IDs everywhere? |
// TODO(nektar): Rename this function to GetFromNodeID. |
- BrowserAccessibilityWin* GetFromID(int32_t id) const; |
+ BrowserAccessibilityComWin* GetFromID(int32_t id) const; |
// Returns true if this is a list box option with a parent of type list box, |
// or a menu list option with a parent of type menu list popup. |
@@ -913,8 +909,6 @@ BrowserAccessibilityWin |
// Fire a Windows-specific accessibility event notification on this node. |
void FireNativeEvent(LONG win_event_type) const; |
- ui::AXPlatformNodeWin* GetPlatformNodeWin() const; |
- |
static bool IsInTreeGrid(const BrowserAccessibility* item); |
struct WinAttributes { |
@@ -948,13 +942,15 @@ BrowserAccessibilityWin |
// |hyperlinks_|. |
std::map<int32_t, int32_t> hyperlink_offset_to_index; |
- // The unique id of a BrowserAccessibilityWin for each hyperlink. |
+ // The unique id of a BrowserAccessibilityComWin for each hyperlink. |
// TODO(nektar): Replace object IDs with child indices if we decide that |
// we are not implementing IA2 hyperlinks for anything other than IA2 |
// Hypertext. |
std::vector<int32_t> hyperlinks; |
}; |
+ BrowserAccessibilityWin* owner_; |
+ |
std::unique_ptr<WinAttributes> win_attributes_; |
// Only valid during the scope of a IA2_EVENT_TEXT_REMOVED or |
@@ -970,17 +966,15 @@ BrowserAccessibilityWin |
// Give BrowserAccessibility::Create access to our constructor. |
friend class BrowserAccessibility; |
+ friend class BrowserAccessibilityWin; |
friend class BrowserAccessibilityRelation; |
- DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityWin); |
+ DISALLOW_COPY_AND_ASSIGN(BrowserAccessibilityComWin); |
}; |
-CONTENT_EXPORT BrowserAccessibilityWin* |
-ToBrowserAccessibilityWin(BrowserAccessibility* obj); |
- |
-CONTENT_EXPORT const BrowserAccessibilityWin* |
-ToBrowserAccessibilityWin(const BrowserAccessibility* obj); |
+CONTENT_EXPORT BrowserAccessibilityComWin* ToBrowserAccessibilityComWin( |
+ BrowserAccessibility* obj); |
} // namespace content |
-#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_WIN_H_ |
+#endif // CONTENT_BROWSER_ACCESSIBILITY_BROWSER_ACCESSIBILITY_COM_WIN_H_ |