Index: content/browser/accessibility/browser_accessibility_cocoa.mm |
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm |
index a0a8338f3f294ec228f5613173c49785afc1e264..8145d818df1142cb9c930c45ac5ac36d513da30a 100644 |
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm |
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm |
@@ -22,6 +22,8 @@ |
#include "content/browser/accessibility/one_shot_accessibility_tree_search.h" |
#include "content/public/common/content_client.h" |
#include "third_party/skia/include/core/SkColor.h" |
+#include "ui/accessibility/ax_position.h" |
+#include "ui/accessibility/ax_range.h" |
#import "ui/accessibility/platform/ax_platform_node_mac.h" |
using content::AXTreeIDRegistry; |
@@ -94,13 +96,6 @@ NSString* const NSAccessibilityScrollToVisibleAction = @"AXScrollToVisible"; |
// A mapping from an accessibility attribute to its method name. |
NSDictionary* attributeToMethodNameMap = nil; |
-struct AXTextMarkerData { |
- AXTreeIDRegistry::AXTreeID tree_id; |
- int32_t node_id; |
- int offset; |
- ui::AXTextAffinity affinity; |
-}; |
- |
// VoiceOver uses -1 to mean "no limit" for AXResultsLimit. |
const int kAXResultsLimitNoLimit = -1; |
@@ -139,11 +134,13 @@ AXTextMarkerRef AXTextMarkerRangeCopyEndMarker( |
id CreateTextMarker(const BrowserAccessibility& object, |
int offset, |
ui::AXTextAffinity affinity) { |
- AXTextMarkerData marker_data; |
- marker_data.tree_id = object.manager() ? object.manager()->ax_tree_id() : -1; |
- marker_data.node_id = object.GetId(); |
- marker_data.offset = offset; |
- marker_data.affinity = affinity; |
+ if (!object.instance_active()) |
dmazzoni
2016/10/03 18:22:51
I think you should finish updating this file befor
|
+ return nil; |
+ |
+ const auto manager = object.manager(); |
+ DCHECK(manager); |
+ AXPosition marker_data = AXPlatformPosition::CreateTextPosition(manager->ax_tree_id(), object.node_id(), offset); |
dmazzoni
2016/10/03 18:22:51
Where is AXPlatformPosition::CreateTextPosition de
|
+ marker_data.set_affinity(affinity); |
dmazzoni
2016/10/03 18:22:51
Don't you need an object of type AXPlatformPositio
|
return (id)base::mac::CFTypeRefToNSObjectAutorelease(AXTextMarkerCreate( |
kCFAllocatorDefault, reinterpret_cast<const UInt8*>(&marker_data), |
sizeof(marker_data))); |