| 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..b4eef86c53f7521c4fd6c0d3749d937cb0766853 100644
|
| --- a/chrome/renderer/extensions/automation_internal_custom_bindings.cc
|
| +++ b/chrome/renderer/extensions/automation_internal_custom_bindings.cc
|
| @@ -711,6 +711,16 @@ AutomationInternalCustomBindings::AutomationInternalCustomBindings(
|
| std::string name_from_str = ui::ToString(name_from);
|
| result.Set(v8::String::NewFromUtf8(isolate, name_from_str.c_str()));
|
| });
|
| + RouteNodeIDFunction(
|
| + "GetChecked", [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result,
|
| + TreeCache* cache, ui::AXNode* node) {
|
| + const int checked_state =
|
| + node->data().GetIntAttribute(ui::AX_ATTR_CHECKED_STATE);
|
| + const char* checked_str = GetCheckedStateName(checked_state);
|
| + if (checked_state) {
|
| + result.Set(v8::String::NewFromUtf8(isolate, checked_str));
|
| + }
|
| + });
|
| }
|
|
|
| AutomationInternalCustomBindings::~AutomationInternalCustomBindings() {}
|
| @@ -1001,6 +1011,21 @@ void AutomationInternalCustomBindings::GetState(
|
| args.GetReturnValue().Set(state);
|
| }
|
|
|
| +const char* AutomationInternalCustomBindings::GetCheckedStateName(
|
| + const int checked_state) {
|
| + switch (checked_state) {
|
| + case ui::AX_CHECKED_STATE_NONE:
|
| + return nullptr;
|
| + case ui::AX_CHECKED_STATE_TRUE:
|
| + return "true";
|
| + case ui::AX_CHECKED_STATE_MIXED:
|
| + return "mixed";
|
| + default:
|
| + break;
|
| + }
|
| + return "false";
|
| +}
|
| +
|
| void AutomationInternalCustomBindings::UpdateOverallTreeChangeObserverFilter() {
|
| tree_change_observer_overall_filter_ = 0;
|
| for (const auto& observer : tree_change_observers_)
|
|
|