Bug 739396, part 0 - Make nsDocumentViewer use mozilla::dom::Selection internally instead of nsISelection.
Bug 739396, part 1 - Split a range (that are to be added to the Selection as a result of a user action) into multiple ranges that excludes any non-selectable (-moz-user-select:none) sub-trees.
Bug 739396 - Tests.