Index: chrome/third_party/chromevox/extensions/searchvox/util.js |
diff --git a/chrome/third_party/chromevox/extensions/searchvox/util.js b/chrome/third_party/chromevox/extensions/searchvox/util.js |
deleted file mode 100644 |
index 908c3d5836d62e3a59298b8132b21334b5f9e396..0000000000000000000000000000000000000000 |
--- a/chrome/third_party/chromevox/extensions/searchvox/util.js |
+++ /dev/null |
@@ -1,181 +0,0 @@ |
-// Copyright 2012 Google Inc. All Rights Reserved. |
- |
-/** |
- * @fileoverview Helper functions. |
- */ |
- |
-goog.provide('cvox.SearchUtil'); |
- |
-/** Utility functions. */ |
-cvox.SearchUtil = function() { |
-}; |
- |
-/** |
- * Extracts the first URL from an element. |
- * @param {Node} node DOM element to extract from. |
- * @return {?string} URL. |
- */ |
-cvox.SearchUtil.extractURL = function(node) { |
- if (node) { |
- if (node.tagName === 'A') { |
- return node.href; |
- } |
- var anchor = node.querySelector('a'); |
- if (anchor) { |
- return anchor.href; |
- } |
- } |
- return null; |
-}; |
- |
-/** |
- * Indicates whether or not the search widget has been activated. |
- * @return {boolean} Whether or not the search widget is active. |
- */ |
-cvox.SearchUtil.isSearchWidgetActive = function() { |
- var SEARCH_WIDGET_SELECT = '#cvox-search'; |
- return document.querySelector(SEARCH_WIDGET_SELECT) !== null; |
-}; |
- |
-/** |
- * Adds one to and index with wrapping. |
- * @param {number} index Index to add to. |
- * @param {number} length Length to wrap at. |
- * @return {number} The new index++, wrapped if exceeding length. |
- */ |
-cvox.SearchUtil.addOneWrap = function(index, length) { |
- return (index + 1) % length; |
-}; |
- |
-/** |
- * Subtracts one to and index with wrapping. |
- * @param {number} index Index to subtract from. |
- * @param {number} length Length to wrap at. |
- * @return {number} The new index--, wrapped if below 0. |
- */ |
-cvox.SearchUtil.subOneWrap = function(index, length) { |
- return (index - 1 + length) % length; |
-}; |
- |
-/** |
- * Returns the id of a node's active descendant |
- * @param {Node} targetNode The node. |
- * @return {?string} The id of the active descendant. |
- * @private |
- */ |
-var getActiveDescendantId_ = function(targetNode) { |
- if (!targetNode.getAttribute) { |
- return null; |
- } |
- |
- var activeId = targetNode.getAttribute('aria-activedescendant'); |
- if (!activeId) { |
- return null; |
- } |
- return activeId; |
-}; |
- |
-/** |
- * If the node is an object with an active descendant, returns the |
- * descendant node. |
- * |
- * This function will fully resolve an active descendant chain. If a circular |
- * chain is detected, it will return null. |
- * |
- * @param {Node} targetNode The node to get descendant information for. |
- * @return {Node} The descendant node or null if no node exists. |
- */ |
-var getActiveDescendant = function(targetNode) { |
- var seenIds = {}; |
- var node = targetNode; |
- |
- while (node) { |
- var activeId = getActiveDescendantId_(node); |
- if (!activeId) { |
- break; |
- } |
- if (activeId in seenIds) { |
- // A circlar activeDescendant is an error, so return null. |
- return null; |
- } |
- seenIds[activeId] = true; |
- node = document.getElementById(activeId); |
- } |
- |
- if (node == targetNode) { |
- return null; |
- } |
- return node; |
-}; |
- |
-/** |
- * Dispatches a left click event on the element that is the targetNode. |
- * Clicks go in the sequence of mousedown, mouseup, and click. |
- * @param {Node} targetNode The target node of this operation. |
- * @param {boolean=} shiftKey Specifies if shift is held down. |
- * @param {boolean=} callOnClickDirectly Specifies whether or not to directly |
- * invoke the onclick method if there is one. |
- * @param {boolean=} opt_double True to issue a double click. |
- */ |
-cvox.SearchUtil.clickElem = function( |
- targetNode, shiftKey, callOnClickDirectly, opt_double) { |
- // If there is an activeDescendant of the targetNode, then that is where the |
- // click should actually be targeted. |
- var activeDescendant = getActiveDescendant(targetNode); |
- if (activeDescendant) { |
- targetNode = activeDescendant; |
- } |
- if (callOnClickDirectly) { |
- var onClickFunction = null; |
- if (targetNode.onclick) { |
- onClickFunction = targetNode.onclick; |
- } |
- if (!onClickFunction && (targetNode.nodeType != 1) && |
- targetNode.parentNode && targetNode.parentNode.onclick) { |
- onClickFunction = targetNode.parentNode.onclick; |
- } |
- var keepGoing = true; |
- if (onClickFunction) { |
- try { |
- keepGoing = onClickFunction(); |
- } catch (exception) { |
- // Something went very wrong with the onclick method; we'll ignore it |
- // and just dispatch a click event normally. |
- } |
- } |
- if (!keepGoing) { |
- // The onclick method ran successfully and returned false, meaning the |
- // event should not bubble up, so we will return here. |
- return; |
- } |
- } |
- |
- // Send a mousedown (or simply a double click if requested). |
- var evt = document.createEvent('MouseEvents'); |
- var evtType = opt_double ? 'dblclick' : 'mousedown'; |
- evt.initMouseEvent(evtType, true, true, document.defaultView, |
- 1, 0, 0, 0, 0, false, false, shiftKey, false, 0, null); |
- // Mark any events we generate so we don't try to process our own events. |
- evt.fromCvox = true; |
- try { |
- targetNode.dispatchEvent(evt); |
- } catch (e) {} |
- //Send a mouse up |
- evt = document.createEvent('MouseEvents'); |
- evt.initMouseEvent('mouseup', true, true, document.defaultView, |
- 1, 0, 0, 0, 0, false, false, shiftKey, false, 0, null); |
- // Mark any events we generate so we don't try to process our own events. |
- evt.fromCvox = true; |
- try { |
- targetNode.dispatchEvent(evt); |
- } catch (e) {} |
- //Send a click |
- evt = document.createEvent('MouseEvents'); |
- evt.initMouseEvent('click', true, true, document.defaultView, |
- 1, 0, 0, 0, 0, false, false, shiftKey, false, 0, null); |
- // Mark any events we generate so we don't try to process our own events. |
- evt.fromCvox = true; |
- try { |
- targetNode.dispatchEvent(evt); |
- } catch (e) {} |
-}; |