Index: third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js |
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js b/third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js |
deleted file mode 100644 |
index a933495d11430c467e855ec76f006904ad91676f..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/LayoutTests/inspector-protocol/accessibility/accessibility-dumpAccessibilityNodes.js |
+++ /dev/null |
@@ -1,326 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-function initialize_DumpAccessibilityNodesTest() { |
- |
-var nodeInfo = {}; |
-InspectorTest.trackGetChildNodesEvents(nodeInfo); |
- |
-InspectorTest.dumpAccessibilityNodesBySelectorAndCompleteTest = function(selector, fetchRelatives, msg) { |
- if (msg.error) { |
- InspectorTest.log(msg.error.message); |
- InspectorTest.completeTest(); |
- return; |
- } |
- |
- var rootNode = msg.result.root; |
- var rootNodeId = rootNode.nodeId; |
- InspectorTest.addNode(nodeInfo, rootNode); |
- |
- sendQuerySelectorAll(rootNodeId, selector) |
- .then((msg) => { return getAXNodes(msg, fetchRelatives || false) } ) |
- .then(() => { done(); }) |
- .then(() => { |
- InspectorTest.completeTest(); |
- }) |
- .catch((msg) => { InspectorTest.log("Error: " + JSON.stringify(msg)); }) |
-} |
- |
-function sendCommandPromise(command, params) |
-{ |
- return new Promise(function(resolve, reject) { |
- InspectorTest.sendCommand(command, params, function(msg) { |
- if (msg.error) { |
- reject(msg.error); |
- return; |
- } |
- |
- resolve(msg); |
- }) |
- }); |
-} |
- |
-function done() |
-{ |
- sendCommandPromise("Runtime.evaluate", { expression: "done();" }); |
-} |
- |
-function sendQuerySelectorAll(nodeId, selector) |
-{ |
- return sendCommandPromise("DOM.querySelectorAll", { "nodeId": nodeId, "selector": |
- selector }); |
-} |
- |
-function getAXNodes(msg, fetchRelatives) |
-{ |
- var promise = Promise.resolve(); |
- if (!msg.result || !msg.result.nodeIds) { |
- InspectorTest.log("Unexpected result: " + JSON.stringify(msg)); |
- InspectorTest.completeTest(); |
- } |
- msg.result.nodeIds.forEach((id) => { |
- if (fetchRelatives) { |
- promise = promise.then(() => { |
- return sendCommandPromise("Accessibility.getPartialAXTree", { "nodeId": id, "fetchRelatives": true }); |
- }); |
- promise = promise.then((msg) => { return rewriteRelatedNodes(msg, id); }) |
- .then((msg) => { return dumpTreeStructure(msg); }); |
- |
- } |
- promise = promise.then(() => { return sendCommandPromise("Accessibility.getPartialAXTree", { "nodeId": id, "fetchRelatives": false }); }) |
- .then((msg) => { return rewriteRelatedNodes(msg, id); }) |
- .then((msg) => { return dumpNode(msg); }); |
- |
- }); |
- return promise; |
-} |
- |
-function describeDomNode(nodeData) |
-{ |
- var description = nodeData.nodeName.toLowerCase(); |
- switch (nodeData.nodeType) { |
- case Node.ELEMENT_NODE: |
- var p = nodeData.attributes.indexOf("id"); |
- if (p >= 0) |
- description += "#" + nodeData.attributes[p + 1]; |
- } |
- return description; |
-} |
- |
-function rewriteBackendDomNodeId(axNode, selectedNodeId, promises) |
-{ |
- if (!("backendDOMNodeId" in axNode)) |
- return; |
- |
- function rewriteBackendDomNodeIdPromise(resolve, reject) |
- { |
- if (!("backendDOMNodeId" in axNode)) { |
- resolve(); |
- return; |
- } |
- var backendDOMNodeId = axNode.backendDOMNodeId; |
- |
- function onDomNodeResolved(backendDOMNodeId, message) |
- { |
- if (!message.result || !message.result.nodeIds) { |
- InspectorTest.log("Unexpected result for pushNodesByBackendIdsToFrontend: " + JSON.stringify(message)); |
- InspectorTest.completeTest(); |
- return; |
- } |
- var nodeId = message.result.nodeIds[0]; |
- if (!(nodeId in nodeInfo)) { |
- axNode.domNode = "[NODE NOT FOUND]"; |
- resolve(); |
- return; |
- } |
- var domNode = nodeInfo[nodeId]; |
- delete axNode.backendDOMNodeId; |
- axNode.domNode = describeDomNode(domNode); |
- if (nodeId === selectedNodeId) |
- axNode.selected = true; |
- resolve(); |
- } |
- |
- var params = { "backendNodeIds": [ backendDOMNodeId ] }; |
- InspectorTest.sendCommand("DOM.pushNodesByBackendIdsToFrontend", params , onDomNodeResolved.bind(null, backendDOMNodeId)); |
- } |
- promises.push(new Promise(rewriteBackendDomNodeIdPromise)); |
-} |
- |
-function rewriteRelatedNode(relatedNode) |
-{ |
- function rewriteRelatedNodePromise(resolve, reject) |
- { |
- if (!("backendDOMNodeId" in relatedNode)) { |
- reject("Could not find backendDOMNodeId in " + JSON.stringify(relatedNode)); |
- return; |
- } |
- var backendDOMNodeId = relatedNode.backendDOMNodeId; |
- |
- function onNodeResolved(backendDOMNodeId, message) |
- { |
- if (!message.result || !message.result.nodeIds) { |
- InspectorTest.log("Unexpected result for pushNodesByBackendIdsToFrontend: " + JSON.stringify(message)); |
- InspectorTest.completeTest(); |
- return; |
- } |
- var nodeId = message.result.nodeIds[0]; |
- if (!(nodeId in nodeInfo)) { |
- relatedNode.nodeResult = "[NODE NOT FOUND]"; |
- resolve(); |
- return; |
- } |
- var domNode = nodeInfo[nodeId]; |
- delete relatedNode.backendDOMNodeId; |
- relatedNode.nodeResult = describeDomNode(domNode); |
- resolve(); |
- } |
- var params = { "backendNodeIds": [ backendDOMNodeId ] }; |
- InspectorTest.sendCommand("DOM.pushNodesByBackendIdsToFrontend", params, onNodeResolved.bind(null, backendDOMNodeId)); |
- |
- } |
- return new Promise(rewriteRelatedNodePromise); |
-} |
- |
-function checkExists(path, obj) |
-{ |
- var pathComponents = path.split("."); |
- var currentPath = []; |
- var currentObject = obj; |
- for (var component of pathComponents) { |
- var isArray = false; |
- var index = -1; |
- var matches = component.match(/(\w+)\[(\d+)\]/); |
- if (matches) { |
- isArray = true; |
- component = matches[1]; |
- index = Number.parseInt(matches[2], 10); |
- } |
- currentPath.push(component); |
- if (!(component in currentObject)) { |
- InspectorTest.log("Could not find " + currentPath.join(".") + " in " + JSON.stringify(obj, null, " ")); |
- InspectorTest.completeTest(); |
- } |
- if (isArray) |
- currentObject = currentObject[component][index]; |
- else |
- currentObject = currentObject[component]; |
- } |
- return true; |
-} |
- |
-function check(condition, errorMsg, obj) |
-{ |
- if (condition) |
- return true; |
- throw new Error(errorMsg + " in " + JSON.stringify(obj, null, " ")); |
-} |
- |
-function rewriteRelatedNodeValue(value, promises) |
-{ |
- checkExists("relatedNodes", value); |
- var relatedNodeArray = value.relatedNodes; |
- check(Array.isArray(relatedNodeArray), "relatedNodes should be an array", JSON.stringify(value)); |
- for (var relatedNode of relatedNodeArray) { |
- promises.push(rewriteRelatedNode(relatedNode)); |
- } |
-} |
- |
-function rewriteRelatedNodes(msg, nodeId) |
-{ |
- if (msg.error) { |
- throw new Error(msg.error.message); |
- } |
- |
- var promises = []; |
- for (var node of msg.result.nodes) { |
- if (node.ignored) { |
- checkExists("ignoredReasons", node); |
- var properties = node.ignoredReasons; |
- } else { |
- checkExists("properties", node); |
- var properties = node.properties; |
- } |
- if (node.name && node.name.sources) { |
- for (var source of node.name.sources) { |
- var value; |
- if (source.value) |
- value = source.value; |
- if (source.attributeValue) |
- value = source.attributeValue; |
- if (!value) |
- continue; |
- if (value.type === "idrefList" || |
- value.type === "idref" || |
- value.type === "nodeList") |
- rewriteRelatedNodeValue(value, promises); |
- } |
- } |
- for (var property of properties) { |
- if (property.value.type === "idrefList" || |
- property.value.type === "idref" || |
- property.value.type === "nodeList") |
- rewriteRelatedNodeValue(property.value, promises); |
- } |
- rewriteBackendDomNodeId(node, nodeId, promises); |
- } |
- return Promise.all(promises).then(() => { return msg; }); |
-} |
- |
-function dumpNode(msg) |
-{ |
- function stripIds(key, value) |
- { |
- var stripKeys = ["id", "backendDOMNodeId", "nodeId", "parentId"]; |
- if (stripKeys.indexOf(key) !== -1) |
- return "<" + typeof(value) + ">"; |
- var deleteKeys = ["selected"]; |
- if (deleteKeys.indexOf(key) !== -1) |
- return undefined; |
- return value; |
- } |
- if (!msg.result || !msg.result.nodes || msg.result.nodes.length !== 1) { |
- InspectorTest.log("Expected exactly one node in " + JSON.stringify(msg, null, " ")); |
- return; |
- } |
- InspectorTest.log(JSON.stringify(msg.result.nodes[0], stripIds, " ")); |
-} |
- |
-function dumpTreeStructure(msg) |
-{ |
- function printNodeAndChildren(node, leadingSpace) |
- { |
- leadingSpace = leadingSpace || ""; |
- var string = leadingSpace; |
- if (node.selected) |
- string += "*"; |
- if (node.role) |
- string += node.role.value; |
- else |
- string += "<no role>"; |
- string += (node.name && node.name.value !== "" ? " \"" + node.name.value + "\"" : ""); |
- if (node.children) { |
- for (var child of node.children) |
- string += "\n" + printNodeAndChildren(child, leadingSpace + " "); |
- } |
- return string; |
- } |
- |
- var rawMsg = JSON.stringify(msg, null, " "); |
- var nodeMap = {}; |
- if ("result" in msg && "nodes" in msg.result) { |
- for (var node of msg.result.nodes) |
- nodeMap[node.nodeId] = node; |
- } |
- for (var nodeId in nodeMap) { |
- var node = nodeMap[nodeId]; |
- if (node.childIds) { |
- node.children = []; |
- for (var i = 0; i < node.childIds.length && node.childIds.length > 0;) { |
- var childId = node.childIds[i]; |
- if (childId in nodeMap) { |
- var child = nodeMap[childId]; |
- child.parentId = nodeId; |
- node.children.push(child); |
- |
- node.childIds.splice(i, 1); |
- } else { |
- node.childIds[i] = "<string>"; |
- i++; |
- } |
- } |
- if (!node.childIds.length) |
- delete node.childIds; |
- if (!node.children.length) |
- delete node.children; |
- } |
- } |
- var rootNode = Object.values(nodeMap).find((node) => !("parentId" in node)); |
- for (var node of Object.values(nodeMap)) |
- delete node.parentId; |
- |
- InspectorTest.log("\n" + printNodeAndChildren(rootNode)); |
-} |
- |
-} |