// http://w3c.github.io/selection-api/#selection-interface interface Selection { readonly attribute Node? anchorNode; readonly attribute unsigned long anchorOffset; readonly attribute Node? focusNode; readonly attribute unsigned long focusOffset; readonly attribute boolean isCollapsed; readonly attribute unsigned long rangeCount; readonly attribute DOMString type; Range getRangeAt(unsigned long index); void addRange(Range range); void removeRange(Range range); void removeAllRanges(); void empty(); void collapse(Node? node, optional unsigned long offset = 0); void setPosition(Node? node, optional unsigned long offset = 0); void collapseToStart(); void collapseToEnd(); void extend(Node node, optional unsigned long offset = 0); void setBaseAndExtent(Node anchorNode, unsigned long anchorOffset, Node focusNode, unsigned long focusOffset); void selectAllChildren(Node node); [CEReactions] void deleteFromDocument(); boolean containsNode(Node node, optional boolean allowPartialContainment = false); stringifier DOMString (); }; partial interface Document { Selection? getSelection(); }; partial interface Window { Selection? getSelection(); }; partial interface GlobalEventHandlers { attribute EventHandler onselectstart; attribute EventHandler onselectionchange; };