Bug 429732 - speed up highlighting by optimizing _getEditableNode. r=ehsan

This commit is contained in:
Tomasz Kołodziejski 2014-08-29 11:14:00 +02:00
Родитель 4e2bdf4c74
Коммит 4fd7332f4a
1 изменённых файлов: 6 добавлений и 7 удалений

Просмотреть файл

@ -613,19 +613,18 @@ Finder.prototype = {
},
/*
* For a given node, walk up it's parent chain, to try and find an
* editable node.
* For a given node returns its editable parent or null if there is none.
* It's enough to check if aNode is a text node and its parent's parent is
* instance of nsIDOMNSEditableElement.
*
* @param aNode the node we want to check
* @returns the first node in the parent chain that is editable,
* null if there is no such node
*/
_getEditableNode: function (aNode) {
while (aNode) {
if (aNode instanceof Ci.nsIDOMNSEditableElement)
return aNode.editor ? aNode : null;
aNode = aNode.parentNode;
if (aNode.nodeType === aNode.TEXT_NODE && aNode.parentNode && aNode.parentNode.parentNode &&
aNode.parentNode.parentNode instanceof Ci.nsIDOMNSEditableElement) {
return aNode.parentNode.parentNode;
}
return null;
},