| Index: chrome/renderer/extensions/automation_internal_custom_bindings.cc
|
| diff --git a/chrome/renderer/extensions/automation_internal_custom_bindings.cc b/chrome/renderer/extensions/automation_internal_custom_bindings.cc
|
| index e56944b1f4928389aae3fb68e502e1dc620804e8..1cc6e97f6b25c7f74e466e7cf67c163c358d9cc8 100644
|
| --- a/chrome/renderer/extensions/automation_internal_custom_bindings.cc
|
| +++ b/chrome/renderer/extensions/automation_internal_custom_bindings.cc
|
| @@ -30,6 +30,20 @@
|
| namespace extensions {
|
|
|
| namespace {
|
| +
|
| +// Helper to convert an enum to a V8 object.
|
| +template <typename EnumType>
|
| +v8::Local<v8::Object> ToEnumObject(v8::Isolate* isolate,
|
| + EnumType start_after,
|
| + EnumType end_at) {
|
| + v8::Local<v8::Object> object = v8::Object::New(isolate);
|
| + for (int i = start_after + 1; i <= end_at; ++i) {
|
| + v8::Local<v8::String> value = v8::String::NewFromUtf8(
|
| + isolate, ui::ToString(static_cast<EnumType>(i)).c_str());
|
| + object->Set(value, value);
|
| + }
|
| + return object;
|
| +}
|
|
|
| void ThrowInvalidArgumentsException(
|
| AutomationInternalCustomBindings* automation_bindings) {
|
| @@ -703,14 +717,6 @@
|
|
|
| result.Set(v8::String::NewFromUtf8(isolate, attr_value.c_str()));
|
| });
|
| - RouteNodeIDFunction(
|
| - "GetNameFrom", [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result,
|
| - TreeCache* cache, ui::AXNode* node) {
|
| - ui::AXNameFrom name_from = static_cast<ui::AXNameFrom>(
|
| - node->data().GetIntAttribute(ui::AX_ATTR_NAME_FROM));
|
| - std::string name_from_str = ui::ToString(name_from);
|
| - result.Set(v8::String::NewFromUtf8(isolate, name_from_str.c_str()));
|
| - });
|
| }
|
|
|
| AutomationInternalCustomBindings::~AutomationInternalCustomBindings() {}
|
| @@ -774,6 +780,22 @@
|
| void AutomationInternalCustomBindings::GetSchemaAdditions(
|
| const v8::FunctionCallbackInfo<v8::Value>& args) {
|
| v8::Local<v8::Object> additions = v8::Object::New(GetIsolate());
|
| +
|
| + additions->Set(
|
| + v8::String::NewFromUtf8(GetIsolate(), "EventType"),
|
| + ToEnumObject(GetIsolate(), ui::AX_EVENT_NONE, ui::AX_EVENT_LAST));
|
| +
|
| + additions->Set(
|
| + v8::String::NewFromUtf8(GetIsolate(), "RoleType"),
|
| + ToEnumObject(GetIsolate(), ui::AX_ROLE_NONE, ui::AX_ROLE_LAST));
|
| +
|
| + additions->Set(
|
| + v8::String::NewFromUtf8(GetIsolate(), "StateType"),
|
| + ToEnumObject(GetIsolate(), ui::AX_STATE_NONE, ui::AX_STATE_LAST));
|
| +
|
| + additions->Set(
|
| + v8::String::NewFromUtf8(GetIsolate(), "TreeChangeType"),
|
| + ToEnumObject(GetIsolate(), ui::AX_MUTATION_NONE, ui::AX_MUTATION_LAST));
|
|
|
| v8::Local<v8::Object> name_from_type(v8::Object::New(GetIsolate()));
|
| for (int i = ui::AX_NAME_FROM_NONE; i <= ui::AX_NAME_FROM_LAST; ++i) {
|
|
|