Index: components/test_runner/web_ax_object_proxy.cc |
diff --git a/components/test_runner/web_ax_object_proxy.cc b/components/test_runner/web_ax_object_proxy.cc |
index 4ed30f2c44ff2f737e8eacd565882a5ad4a9af0c..c22cdc31f31e781b34791f95ec63252664313947 100644 |
--- a/components/test_runner/web_ax_object_proxy.cc |
+++ b/components/test_runner/web_ax_object_proxy.cc |
@@ -492,6 +492,14 @@ WebAXObjectProxy::GetObjectTemplateBuilder(v8::Isolate* isolate) { |
.SetProperty("maxValue", &WebAXObjectProxy::MaxValue) |
.SetProperty("valueDescription", &WebAXObjectProxy::ValueDescription) |
.SetProperty("childrenCount", &WebAXObjectProxy::ChildrenCount) |
+ .SetProperty("selectionAnchorObject", |
+ &WebAXObjectProxy::SelectionAnchorObject) |
+ .SetProperty("selectionAnchorOffset", |
+ &WebAXObjectProxy::SelectionAnchorOffset) |
+ .SetProperty("selectionFocusObject", |
+ &WebAXObjectProxy::SelectionFocusObject) |
+ .SetProperty("selectionFocusOffset", |
+ &WebAXObjectProxy::SelectionFocusOffset) |
.SetProperty("selectionStart", &WebAXObjectProxy::SelectionStart) |
.SetProperty("selectionEnd", &WebAXObjectProxy::SelectionEnd) |
.SetProperty("selectionStartLineNumber", |
@@ -733,6 +741,66 @@ int WebAXObjectProxy::ChildrenCount() { |
return count; |
} |
+v8::Local<v8::Object> WebAXObjectProxy::SelectionAnchorObject() { |
+ accessibility_object_.updateLayoutAndCheckValidity(); |
+ |
+ blink::WebAxObject* anchorObject = nullptr; |
dmazzoni
2015/06/22 19:23:21
Typo: WebAxObject -> WebAXObject
|
+ int anchorOffset = -1; |
+ blink::WebAxObject* focusObject = nullptr; |
+ int focusOffset = -1; |
+ accessibility_object_.selection(anchorObject, &anchorOffset, |
+ focusObject, &focusOffset); |
+ if (anchorObject) |
+ return factory_->GetOrCreate(anchorObject); |
+ |
+ return v8::Local<v8::Object>(); |
+} |
+ |
+int WebAXObjectProxy::SelectionAnchorOffset() { |
+ accessibility_object_.updateLayoutAndCheckValidity(); |
+ |
+ blink::WebAxObject* anchorObject = nullptr; |
+ int anchorOffset = -1; |
+ blink::WebAxObject* focusObject = nullptr; |
+ int focusOffset = -1; |
+ accessibility_object_.selection(anchorObject, &anchorOffset, |
+ focusObject, &focusOffset); |
+ if (anchorOffset >= 0) |
+ return anchorOffset; |
+ |
+ return -1; |
+} |
+ |
+v8::Local<v8::Object> WebAXObjectProxy::SelectionFocusObject() { |
+ accessibility_object_.updateLayoutAndCheckValidity(); |
+ |
+ blink::WebAxObject* anchorObject = nullptr; |
+ int anchorOffset = -1; |
+ blink::WebAxObject* focusObject = nullptr; |
+ int focusOffset = -1; |
+ accessibility_object_.selection(anchorObject, &anchorOffset, |
+ focusObject, &focusOffset); |
+ if (focusObject) |
+ return factory_->GetOrCreate(focusObject); |
+ |
+ return v8::Local<v8::Object>(); |
+} |
+ |
+int WebAXObjectProxy::SelectionFocusOffset() { |
+ accessibility_object_.updateLayoutAndCheckValidity(); |
+ |
+ blink::WebAxObject* anchorObject = nullptr; |
+ int anchorOffset = -1; |
+ blink::WebAxObject* focusObject = nullptr; |
+ int focusOffset = -1; |
+ accessibility_object_.selection(anchorObject, &anchorOffset, |
+ focusObject, &focusOffset); |
+ if (focusOffset >= 0) |
+ return focusOffset; |
+ |
+ return -1; |
+} |
+ |
int WebAXObjectProxy::SelectionStart() { |
accessibility_object_.updateLayoutAndCheckValidity(); |
return accessibility_object_.selectionStart(); |