Normalize multi-range selections to a single range in Firefox
There are situations where Firefox creates a selection with multiple ranges, even though the spec forbids this. In various places in our code we called `selection.getRangeAt(0)` assuming there would only be one range. In the case where FF had created multiple ranges, this led to only part of the user's selection being respected. - Modifying the `selectedRange` utility to combine multi-range selections into a single Range, so that the results in Firefox are the same as in other browsers. - Replacing various direct calls to `selection.getRangeAt(0)` with calls to `selectedRange` so that they take get this normalization applied. In the tests for `Guest`, this led to refactoring to make some tests less tied to implementation details. Fixes https://github.com/hypothesis/client/issues/5485
Showing
Please register or sign in to comment