Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(309)

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/common/xpath_util.js

Issue 2943193002: Run clang-format on .js files in c/b/r/chromeos/chromevox (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 /** 5 /**
6 * @fileoverview A collection of JavaScript utilities used to simplify working 6 * @fileoverview A collection of JavaScript utilities used to simplify working
7 * with xpaths. 7 * with xpaths.
8 */ 8 */
9 9
10 10
11 goog.provide('cvox.XpathUtil'); 11 goog.provide('cvox.XpathUtil');
12 12
13 13
14 /** 14 /**
15 * Utilities for simplifying working with xpaths 15 * Utilities for simplifying working with xpaths
16 * @constructor 16 * @constructor
17 */ 17 */
18 cvox.XpathUtil = function() { 18 cvox.XpathUtil = function() {};
19 };
20 19
21 20
22 /** 21 /**
23 * Mapping for some default namespaces. 22 * Mapping for some default namespaces.
24 * @const 23 * @const
25 * @private 24 * @private
26 */ 25 */
27 cvox.XpathUtil.nameSpaces_ = { 26 cvox.XpathUtil.nameSpaces_ = {
28 'xhtml' : 'http://www.w3.org/1999/xhtml', 27 'xhtml': 'http://www.w3.org/1999/xhtml',
29 'mathml': 'http://www.w3.org/1998/Math/MathML' 28 'mathml': 'http://www.w3.org/1998/Math/MathML'
30 }; 29 };
31 30
32 31
33 /** 32 /**
34 * Resolve some default name spaces. 33 * Resolve some default name spaces.
35 * @param {string} prefix Namespace prefix. 34 * @param {string} prefix Namespace prefix.
36 * @return {string} The corresponding namespace URI. 35 * @return {string} The corresponding namespace URI.
37 */ 36 */
38 cvox.XpathUtil.resolveNameSpace = function(prefix) { 37 cvox.XpathUtil.resolveNameSpace = function(prefix) {
39 return cvox.XpathUtil.nameSpaces_[prefix] || null; 38 return cvox.XpathUtil.nameSpaces_[prefix] || null;
40 }; 39 };
41 40
42 41
43 /** 42 /**
44 * Given an XPath expression and rootNode, it returns an array of children nodes 43 * Given an XPath expression and rootNode, it returns an array of children nodes
45 * that match. The code for this function was taken from Mihai Parparita's GMail 44 * that match. The code for this function was taken from Mihai Parparita's GMail
46 * Macros Greasemonkey Script. 45 * Macros Greasemonkey Script.
47 * http://gmail-greasemonkey.googlecode.com/svn/trunk/scripts/gmail-new-macros.u ser.js 46 * http://gmail-greasemonkey.googlecode.com/svn/trunk/scripts/gmail-new-macros.u ser.js
48 * @param {string} expression The XPath expression to evaluate. 47 * @param {string} expression The XPath expression to evaluate.
49 * @param {Node} rootNode The HTML node to start evaluating the XPath from. 48 * @param {Node} rootNode The HTML node to start evaluating the XPath from.
50 * @return {Array} The array of children nodes that match. 49 * @return {Array} The array of children nodes that match.
51 */ 50 */
52 cvox.XpathUtil.evalXPath = function(expression, rootNode) { 51 cvox.XpathUtil.evalXPath = function(expression, rootNode) {
53 try { 52 try {
54 var xpathIterator = rootNode.ownerDocument.evaluate( 53 var xpathIterator = rootNode.ownerDocument.evaluate(
55 expression, 54 expression, rootNode, cvox.XpathUtil.resolveNameSpace,
56 rootNode, 55 XPathResult.ORDERED_NODE_ITERATOR_TYPE,
57 cvox.XpathUtil.resolveNameSpace, 56 null); // no existing results
58 XPathResult.ORDERED_NODE_ITERATOR_TYPE,
59 null); // no existing results
60 } catch (err) { 57 } catch (err) {
61 return []; 58 return [];
62 } 59 }
63 var results = []; 60 var results = [];
64 // Convert result to JS array 61 // Convert result to JS array
65 for (var xpathNode = xpathIterator.iterateNext(); 62 for (var xpathNode = xpathIterator.iterateNext(); xpathNode;
66 xpathNode;
67 xpathNode = xpathIterator.iterateNext()) { 63 xpathNode = xpathIterator.iterateNext()) {
68 results.push(xpathNode); 64 results.push(xpathNode);
69 } 65 }
70 return results; 66 return results;
71 }; 67 };
72 68
73 /** 69 /**
74 * Given a rootNode, it returns an array of all its leaf nodes. 70 * Given a rootNode, it returns an array of all its leaf nodes.
75 * @param {Node} rootNode The node to get the leaf nodes from. 71 * @param {Node} rootNode The node to get the leaf nodes from.
76 * @return {Array} The array of leaf nodes for the given rootNode. 72 * @return {Array} The array of leaf nodes for the given rootNode.
77 */ 73 */
78 cvox.XpathUtil.getLeafNodes = function(rootNode) { 74 cvox.XpathUtil.getLeafNodes = function(rootNode) {
79 try { 75 try {
80 var xpathIterator = rootNode.ownerDocument.evaluate( 76 var xpathIterator = rootNode.ownerDocument.evaluate(
81 './/*[count(*)=0]', 77 './/*[count(*)=0]', rootNode,
82 rootNode, 78 null, // no namespace resolver
83 null, // no namespace resolver 79 XPathResult.ORDERED_NODE_ITERATOR_TYPE,
84 XPathResult.ORDERED_NODE_ITERATOR_TYPE, 80 null); // no existing results
85 null); // no existing results
86 } catch (err) { 81 } catch (err) {
87 return []; 82 return [];
88 } 83 }
89 var results = []; 84 var results = [];
90 // Convert result to JS array 85 // Convert result to JS array
91 for (var xpathNode = xpathIterator.iterateNext(); 86 for (var xpathNode = xpathIterator.iterateNext(); xpathNode;
92 xpathNode;
93 xpathNode = xpathIterator.iterateNext()) { 87 xpathNode = xpathIterator.iterateNext()) {
94 results.push(xpathNode); 88 results.push(xpathNode);
95 } 89 }
96 return results; 90 return results;
97 }; 91 };
98 92
99 /** 93 /**
100 * Returns whether or not xpath is supported. 94 * Returns whether or not xpath is supported.
101 * @return {boolean} True if xpath is supported. 95 * @return {boolean} True if xpath is supported.
102 */ 96 */
103 cvox.XpathUtil.xpathSupported = function() { 97 cvox.XpathUtil.xpathSupported = function() {
104 if (typeof(XPathResult) == 'undefined') { 98 if (typeof(XPathResult) == 'undefined') {
105 return false; 99 return false;
106 } 100 }
107 return true; 101 return true;
108 }; 102 };
109 103
110 104
111 /** 105 /**
112 * Given an XPath expression and rootNode, it evaluates the XPath expression as 106 * Given an XPath expression and rootNode, it evaluates the XPath expression as
113 * a boolean type and returns the result. 107 * a boolean type and returns the result.
114 * @param {string} expression The XPath expression to evaluate. 108 * @param {string} expression The XPath expression to evaluate.
115 * @param {Node} rootNode The HTML node to start evaluating the XPath from. 109 * @param {Node} rootNode The HTML node to start evaluating the XPath from.
116 * @return {boolean} The result of evaluating the xpath expression. 110 * @return {boolean} The result of evaluating the xpath expression.
117 */ 111 */
118 cvox.XpathUtil.evaluateBoolean = function(expression, rootNode) { 112 cvox.XpathUtil.evaluateBoolean = function(expression, rootNode) {
119 try { 113 try {
120 var xpathResult = rootNode.ownerDocument.evaluate( 114 var xpathResult = rootNode.ownerDocument.evaluate(
121 expression, 115 expression, rootNode, cvox.XpathUtil.resolveNameSpace,
122 rootNode,
123 cvox.XpathUtil.resolveNameSpace,
124 XPathResult.BOOLEAN_TYPE, 116 XPathResult.BOOLEAN_TYPE,
125 null); // no existing results 117 null); // no existing results
126 } catch (err) { 118 } catch (err) {
127 return false; 119 return false;
128 } 120 }
129 return xpathResult.booleanValue; 121 return xpathResult.booleanValue;
130 }; 122 };
131 123
132 124
133 /** 125 /**
134 * Given an XPath expression and rootNode, it evaluates the XPath expression as 126 * Given an XPath expression and rootNode, it evaluates the XPath expression as
135 * a string type and returns the result. 127 * a string type and returns the result.
136 * @param {string} expression The XPath expression to evaluate. 128 * @param {string} expression The XPath expression to evaluate.
137 * @param {Node} rootNode The HTML node to start evaluating the XPath from. 129 * @param {Node} rootNode The HTML node to start evaluating the XPath from.
138 * @return {string} The result of evaluating the Xpath expression. 130 * @return {string} The result of evaluating the Xpath expression.
139 */ 131 */
140 cvox.XpathUtil.evaluateString = function(expression, rootNode) { 132 cvox.XpathUtil.evaluateString = function(expression, rootNode) {
141 try { 133 try {
142 var xpathResult = rootNode.ownerDocument.evaluate( 134 var xpathResult = rootNode.ownerDocument.evaluate(
143 expression, 135 expression, rootNode, cvox.XpathUtil.resolveNameSpace,
144 rootNode,
145 cvox.XpathUtil.resolveNameSpace,
146 XPathResult.STRING_TYPE, 136 XPathResult.STRING_TYPE,
147 null); // no existing results 137 null); // no existing results
148 } catch (err) { 138 } catch (err) {
149 return ''; 139 return '';
150 } 140 }
151 return xpathResult.stringValue; 141 return xpathResult.stringValue;
152 }; 142 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698