Index: chrome/renderer/resources/extensions/automation/automation_node.js |
diff --git a/chrome/renderer/resources/extensions/automation/automation_node.js b/chrome/renderer/resources/extensions/automation/automation_node.js |
index ab5d26aa47bc2d04b0b2b4884f75864d7886a189..5e0d878d860b0c44c8ca8a48d48c6f028f26fc8f 100644 |
--- a/chrome/renderer/resources/extensions/automation/automation_node.js |
+++ b/chrome/renderer/resources/extensions/automation/automation_node.js |
@@ -199,15 +199,13 @@ var utils = require('utils'); |
*/ |
function AutomationNodeImpl(root) { |
this.rootImpl = root; |
- // Public attributes. No actual data gets set on this object. |
- this.listeners = {}; |
+ this.listeners = {__proto__: null}; |
} |
AutomationNodeImpl.prototype = { |
+ __proto__: null, |
treeID: -1, |
id: -1, |
- role: '', |
- state: { busy: true }, |
isRootNode: false, |
get root() { |
@@ -275,7 +273,7 @@ AutomationNodeImpl.prototype = { |
for (var i = 0; i < count; ++i) { |
var childID = GetChildIDAtIndex(this.treeID, this.id, i); |
var child = this.rootImpl.get(childID); |
- children.push(child); |
+ $Array.push(children, child); |
} |
return children; |
}, |
@@ -326,7 +324,7 @@ AutomationNodeImpl.prototype = { |
{ treeID: this.rootImpl.treeID, |
automationNodeID: this.id, |
selector: selector }, |
- this.domQuerySelectorCallback_.bind(this, callback)); |
+ $Function.bind(this.domQuerySelectorCallback_, this, callback)); |
}, |
find: function(params) { |
@@ -345,7 +343,11 @@ AutomationNodeImpl.prototype = { |
this.removeEventListener(eventType, callback); |
if (!this.listeners[eventType]) |
this.listeners[eventType] = []; |
- this.listeners[eventType].push({callback: callback, capture: !!capture}); |
+ $Array.push(this.listeners[eventType], { |
+ __proto__: null, |
+ callback: callback, |
+ capture: !!capture, |
+ }); |
}, |
// TODO(dtseng/aboxhall): Check this impl against spec. |
@@ -354,7 +356,7 @@ AutomationNodeImpl.prototype = { |
var listeners = this.listeners[eventType]; |
for (var i = 0; i < listeners.length; i++) { |
if (callback === listeners[i].callback) |
- listeners.splice(i, 1); |
+ $Array.splice(listeners, i, 1); |
} |
} |
}, |
@@ -370,7 +372,7 @@ AutomationNodeImpl.prototype = { |
var path = []; |
var parent = this.parent; |
while (parent) { |
- path.push(parent); |
+ $Array.push(path, parent); |
parent = parent.parent; |
} |
var event = new AutomationEvent(eventType, this.wrapper); |
@@ -394,7 +396,7 @@ AutomationNodeImpl.prototype = { |
var childIDs = []; |
for (var i = 0; i < count; ++i) { |
var childID = GetChildIDAtIndex(this.treeID, this.id, i); |
- childIDs.push(childID); |
+ $Array.push(childIDs, childID); |
} |
var result = 'node id=' + this.id + |
@@ -500,7 +502,7 @@ AutomationNodeImpl.prototype = { |
this.forAllDescendants_(function(node) { |
if (privates(node).impl.matchInternal_(params)) { |
if (opt_results) |
- opt_results.push(node); |
+ $Array.push(opt_results, node); |
else |
result = node; |
return !opt_results; |
@@ -518,20 +520,20 @@ AutomationNodeImpl.prototype = { |
* for each node. Return true to early-out the traversal. |
*/ |
forAllDescendants_: function(closure) { |
- var stack = this.wrapper.children.reverse(); |
+ var stack = $Array.reverse(this.wrapper.children); |
while (stack.length > 0) { |
- var node = stack.pop(); |
+ var node = $Array.pop(stack); |
if (closure(node)) |
return; |
var children = node.children; |
for (var i = children.length - 1; i >= 0; i--) |
- stack.push(children[i]); |
+ $Array.push(stack, children[i]); |
} |
}, |
matchInternal_: function(params) { |
- if (Object.keys(params).length == 0) |
+ if ($Object.keys(params).length === 0) |
return false; |
if ('role' in params && this.role != params.role) |
@@ -549,7 +551,7 @@ AutomationNodeImpl.prototype = { |
if (typeof attrValue != 'object') { |
if (this[attribute] !== attrValue) |
return false; |
- } else if (attrValue instanceof RegExp) { |
+ } else if (attrValue instanceof $RegExp.self) { |
if (typeof this[attribute] != 'string') |
return false; |
if (!attrValue.test(this[attribute])) |
@@ -658,38 +660,42 @@ var htmlAttributes = [ |
var publicAttributes = []; |
-stringAttributes.forEach(function (attributeName) { |
- publicAttributes.push(attributeName); |
- Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+$Array.forEach(stringAttributes, function(attributeName) { |
+ $Array.push(publicAttributes, attributeName); |
+ $Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+ __proto__: null, |
get: function() { |
return GetStringAttribute(this.treeID, this.id, attributeName); |
} |
}); |
}); |
-boolAttributes.forEach(function (attributeName) { |
- publicAttributes.push(attributeName); |
- Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+$Array.forEach(boolAttributes, function(attributeName) { |
+ $Array.push(publicAttributes, attributeName); |
+ $Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+ __proto__: null, |
get: function() { |
return GetBoolAttribute(this.treeID, this.id, attributeName); |
} |
}); |
}); |
-intAttributes.forEach(function (attributeName) { |
- publicAttributes.push(attributeName); |
- Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+$Array.forEach(intAttributes, function(attributeName) { |
+ $Array.push(publicAttributes, attributeName); |
+ $Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+ __proto__: null, |
get: function() { |
return GetIntAttribute(this.treeID, this.id, attributeName); |
} |
}); |
}); |
-nodeRefAttributes.forEach(function (params) { |
+$Array.forEach(nodeRefAttributes, function(params) { |
var srcAttributeName = params[0]; |
var dstAttributeName = params[1]; |
- publicAttributes.push(dstAttributeName); |
- Object.defineProperty(AutomationNodeImpl.prototype, dstAttributeName, { |
+ $Array.push(publicAttributes, dstAttributeName); |
+ $Object.defineProperty(AutomationNodeImpl.prototype, dstAttributeName, { |
+ __proto__: null, |
get: function() { |
var id = GetIntAttribute(this.treeID, this.id, srcAttributeName); |
if (id) |
@@ -700,20 +706,22 @@ nodeRefAttributes.forEach(function (params) { |
}); |
}); |
-intListAttributes.forEach(function (attributeName) { |
- publicAttributes.push(attributeName); |
- Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+$Array.forEach(intListAttributes, function(attributeName) { |
+ $Array.push(publicAttributes, attributeName); |
+ $Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+ __proto__: null, |
get: function() { |
return GetIntListAttribute(this.treeID, this.id, attributeName); |
} |
}); |
}); |
-nodeRefListAttributes.forEach(function (params) { |
+$Array.forEach(nodeRefListAttributes, function(params) { |
var srcAttributeName = params[0]; |
var dstAttributeName = params[1]; |
- publicAttributes.push(dstAttributeName); |
- Object.defineProperty(AutomationNodeImpl.prototype, dstAttributeName, { |
+ $Array.push(publicAttributes, dstAttributeName); |
+ $Object.defineProperty(AutomationNodeImpl.prototype, dstAttributeName, { |
+ __proto__: null, |
get: function() { |
var ids = GetIntListAttribute(this.treeID, this.id, srcAttributeName); |
if (!ids) |
@@ -722,27 +730,29 @@ nodeRefListAttributes.forEach(function (params) { |
for (var i = 0; i < ids.length; ++i) { |
var node = this.rootImpl.get(ids[i]); |
if (node) |
- result.push(node); |
+ $Array.push(result, node); |
} |
return result; |
} |
}); |
}); |
-floatAttributes.forEach(function (attributeName) { |
- publicAttributes.push(attributeName); |
- Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+$Array.forEach(floatAttributes, function(attributeName) { |
+ $Array.push(publicAttributes, attributeName); |
+ $Object.defineProperty(AutomationNodeImpl.prototype, attributeName, { |
+ __proto__: null, |
get: function() { |
return GetFloatAttribute(this.treeID, this.id, attributeName); |
} |
}); |
}); |
-htmlAttributes.forEach(function (params) { |
+$Array.forEach(htmlAttributes, function(params) { |
var srcAttributeName = params[0]; |
var dstAttributeName = params[1]; |
- publicAttributes.push(dstAttributeName); |
- Object.defineProperty(AutomationNodeImpl.prototype, dstAttributeName, { |
+ $Array.push(publicAttributes, dstAttributeName); |
+ $Object.defineProperty(AutomationNodeImpl.prototype, dstAttributeName, { |
+ __proto__: null, |
get: function() { |
return GetHtmlAttribute(this.treeID, this.id, srcAttributeName); |
} |
@@ -767,29 +777,30 @@ htmlAttributes.forEach(function (params) { |
* @constructor |
*/ |
function AutomationRootNodeImpl(treeID) { |
- AutomationNodeImpl.call(this, this); |
+ $Function.call(AutomationNodeImpl, this, this); |
this.treeID = treeID; |
- this.axNodeDataCache_ = {}; |
+ this.axNodeDataCache_ = {__proto__: null}; |
} |
-AutomationRootNodeImpl.idToAutomationRootNode_ = {}; |
+utils.defineProperty(AutomationRootNodeImpl, 'idToAutomationRootNode_', |
+ {__proto__: null}); |
-AutomationRootNodeImpl.get = function(treeID) { |
+utils.defineProperty(AutomationRootNodeImpl, 'get', function(treeID) { |
var result = AutomationRootNodeImpl.idToAutomationRootNode_[treeID]; |
return result || undefined; |
-} |
+}); |
-AutomationRootNodeImpl.getOrCreate = function(treeID) { |
+utils.defineProperty(AutomationRootNodeImpl, 'getOrCreate', function(treeID) { |
if (AutomationRootNodeImpl.idToAutomationRootNode_[treeID]) |
return AutomationRootNodeImpl.idToAutomationRootNode_[treeID]; |
var result = new AutomationRootNode(treeID); |
AutomationRootNodeImpl.idToAutomationRootNode_[treeID] = result; |
return result; |
-} |
+}); |
-AutomationRootNodeImpl.destroy = function(treeID) { |
+utils.defineProperty(AutomationRootNodeImpl, 'destroy', function(treeID) { |
delete AutomationRootNodeImpl.idToAutomationRootNode_[treeID]; |
-} |
+}); |
AutomationRootNodeImpl.prototype = { |
__proto__: AutomationNodeImpl.prototype, |
@@ -925,8 +936,7 @@ AutomationRootNodeImpl.prototype = { |
if (nodeImpl.isRootNode) |
output += indent + 'tree id=' + nodeImpl.treeID + '\n'; |
output += indent + |
- AutomationNodeImpl.prototype.toString.call(nodeImpl) + |
- '\n'; |
+ $Function.call(AutomationNodeImpl.prototype.toString, nodeImpl) + '\n'; |
indent += ' '; |
var children = nodeImpl.children; |
for (var i = 0; i < children.length; ++i) |
@@ -989,17 +999,17 @@ utils.expose(AutomationRootNode, AutomationRootNodeImpl, { |
], |
}); |
-AutomationRootNode.get = function(treeID) { |
+utils.defineProperty(AutomationRootNode, 'get', function(treeID) { |
return AutomationRootNodeImpl.get(treeID); |
-} |
+}); |
-AutomationRootNode.getOrCreate = function(treeID) { |
+utils.defineProperty(AutomationRootNode, 'getOrCreate', function(treeID) { |
return AutomationRootNodeImpl.getOrCreate(treeID); |
-} |
+}); |
-AutomationRootNode.destroy = function(treeID) { |
+utils.defineProperty(AutomationRootNode, 'destroy', function(treeID) { |
AutomationRootNodeImpl.destroy(treeID); |
-} |
+}); |
exports.$set('AutomationNode', AutomationNode); |
exports.$set('AutomationRootNode', AutomationRootNode); |