ProcessingInstruction nodes are ignored in Range.deleteContents, Range.cloneContents and Range.extractContents. This is not a very big deal, since neither Firefox nor Opera support these operations on ProcessingInstructions. However, WebKit behavior is already different: we let Ranges start/end in ProcessingInstruction text, while other browsers raise INDEX_SIZE_ERR. Seems logical to implement the rest of the spec in this case. <http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html>: "INDEX_SIZE_ERR: Raised if offset is negative or greater than the number of child units in refNode. Child units are 16-bit units if refNode is a type of CharacterData node (e.g., a Text or Comment node) or a ProcessingInstruction node. Child units are Nodes in all other cases."
Created attachment 17117 [details] proposed fix
Comment on attachment 17117 [details] proposed fix r=me
Committed revision 27665.
Mass moving XML DOM bugs to the "DOM" Component.