| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/renderer/extensions/automation_internal_custom_bindings.h" | 5 #include "chrome/renderer/extensions/automation_internal_custom_bindings.h" |
| 6 | 6 |
| 7 #include <stddef.h> |
| 8 #include <stdint.h> |
| 9 |
| 7 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "base/macros.h" |
| 8 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/thread_task_runner_handle.h" | 13 #include "base/thread_task_runner_handle.h" |
| 10 #include "base/values.h" | 14 #include "base/values.h" |
| 11 #include "chrome/common/extensions/chrome_extension_messages.h" | 15 #include "chrome/common/extensions/chrome_extension_messages.h" |
| 12 #include "chrome/common/extensions/manifest_handlers/automation.h" | 16 #include "chrome/common/extensions/manifest_handlers/automation.h" |
| 13 #include "content/public/renderer/render_frame.h" | 17 #include "content/public/renderer/render_frame.h" |
| 14 #include "content/public/renderer/render_thread.h" | 18 #include "content/public/renderer/render_thread.h" |
| 15 #include "content/public/renderer/render_view.h" | 19 #include "content/public/renderer/render_view.h" |
| 16 #include "extensions/common/extension.h" | 20 #include "extensions/common/extension.h" |
| 17 #include "extensions/common/manifest.h" | 21 #include "extensions/common/manifest.h" |
| (...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 483 RouteNodeIDFunction( | 487 RouteNodeIDFunction( |
| 484 "GetIndexInParent", | 488 "GetIndexInParent", |
| 485 [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result, | 489 [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result, |
| 486 TreeCache* cache, ui::AXNode* node) { | 490 TreeCache* cache, ui::AXNode* node) { |
| 487 result.Set(v8::Integer::New(isolate, node->index_in_parent())); | 491 result.Set(v8::Integer::New(isolate, node->index_in_parent())); |
| 488 }); | 492 }); |
| 489 RouteNodeIDFunction( | 493 RouteNodeIDFunction( |
| 490 "GetState", [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result, | 494 "GetState", [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result, |
| 491 TreeCache* cache, ui::AXNode* node) { | 495 TreeCache* cache, ui::AXNode* node) { |
| 492 v8::Local<v8::Object> state(v8::Object::New(isolate)); | 496 v8::Local<v8::Object> state(v8::Object::New(isolate)); |
| 493 uint32 state_pos = 0, state_shifter = node->data().state; | 497 uint32_t state_pos = 0, state_shifter = node->data().state; |
| 494 while (state_shifter) { | 498 while (state_shifter) { |
| 495 if (state_shifter & 1) { | 499 if (state_shifter & 1) { |
| 496 std::string key = ToString(static_cast<ui::AXState>(state_pos)); | 500 std::string key = ToString(static_cast<ui::AXState>(state_pos)); |
| 497 state->Set(CreateV8String(isolate, key), | 501 state->Set(CreateV8String(isolate, key), |
| 498 v8::Boolean::New(isolate, true)); | 502 v8::Boolean::New(isolate, true)); |
| 499 } | 503 } |
| 500 state_shifter = state_shifter >> 1; | 504 state_shifter = state_shifter >> 1; |
| 501 state_pos++; | 505 state_pos++; |
| 502 } | 506 } |
| 503 result.Set(state); | 507 result.Set(state); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 611 result.Set(v8::Number::New(isolate, attr_value)); | 615 result.Set(v8::Number::New(isolate, attr_value)); |
| 612 }); | 616 }); |
| 613 RouteNodeIDPlusAttributeFunction( | 617 RouteNodeIDPlusAttributeFunction( |
| 614 "GetIntListAttribute", | 618 "GetIntListAttribute", |
| 615 [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result, | 619 [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result, |
| 616 ui::AXNode* node, const std::string& attribute_name) { | 620 ui::AXNode* node, const std::string& attribute_name) { |
| 617 ui::AXIntListAttribute attribute = | 621 ui::AXIntListAttribute attribute = |
| 618 ui::ParseAXIntListAttribute(attribute_name); | 622 ui::ParseAXIntListAttribute(attribute_name); |
| 619 if (!node->data().HasIntListAttribute(attribute)) | 623 if (!node->data().HasIntListAttribute(attribute)) |
| 620 return; | 624 return; |
| 621 const std::vector<int32>& attr_value = | 625 const std::vector<int32_t>& attr_value = |
| 622 node->data().GetIntListAttribute(attribute); | 626 node->data().GetIntListAttribute(attribute); |
| 623 | 627 |
| 624 v8::Local<v8::Array> array_result( | 628 v8::Local<v8::Array> array_result( |
| 625 v8::Array::New(isolate, attr_value.size())); | 629 v8::Array::New(isolate, attr_value.size())); |
| 626 for (size_t i = 0; i < attr_value.size(); ++i) | 630 for (size_t i = 0; i < attr_value.size(); ++i) |
| 627 array_result->Set(static_cast<uint32>(i), | 631 array_result->Set(static_cast<uint32_t>(i), |
| 628 v8::Integer::New(isolate, attr_value[i])); | 632 v8::Integer::New(isolate, attr_value[i])); |
| 629 result.Set(array_result); | 633 result.Set(array_result); |
| 630 }); | 634 }); |
| 631 RouteNodeIDPlusAttributeFunction( | 635 RouteNodeIDPlusAttributeFunction( |
| 632 "GetHtmlAttribute", | 636 "GetHtmlAttribute", |
| 633 [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result, | 637 [](v8::Isolate* isolate, v8::ReturnValue<v8::Value> result, |
| 634 ui::AXNode* node, const std::string& attribute_name) { | 638 ui::AXNode* node, const std::string& attribute_name) { |
| 635 std::string attr_value; | 639 std::string attr_value; |
| 636 if (!node->data().GetHtmlAttribute(attribute_name.c_str(), &attr_value)) | 640 if (!node->data().GetHtmlAttribute(attribute_name.c_str(), &attr_value)) |
| 637 return; | 641 return; |
| (...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1050 v8::Local<v8::Array> args(v8::Array::New(GetIsolate(), 2U)); | 1054 v8::Local<v8::Array> args(v8::Array::New(GetIsolate(), 2U)); |
| 1051 args->Set(0U, v8::Integer::New(GetIsolate(), tree_id)); | 1055 args->Set(0U, v8::Integer::New(GetIsolate(), tree_id)); |
| 1052 v8::Local<v8::Array> nodes(v8::Array::New(GetIsolate(), ids.size())); | 1056 v8::Local<v8::Array> nodes(v8::Array::New(GetIsolate(), ids.size())); |
| 1053 args->Set(1U, nodes); | 1057 args->Set(1U, nodes); |
| 1054 for (size_t i = 0; i < ids.size(); ++i) | 1058 for (size_t i = 0; i < ids.size(); ++i) |
| 1055 nodes->Set(i, v8::Integer::New(GetIsolate(), ids[i])); | 1059 nodes->Set(i, v8::Integer::New(GetIsolate(), ids[i])); |
| 1056 context()->DispatchEvent("automationInternal.onNodesRemoved", args); | 1060 context()->DispatchEvent("automationInternal.onNodesRemoved", args); |
| 1057 } | 1061 } |
| 1058 | 1062 |
| 1059 } // namespace extensions | 1063 } // namespace extensions |
| OLD | NEW |