• Robert Knight's avatar
    Normalize multi-range selections to a single range in Firefox · 6eb68bb6
    Robert Knight authored
    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
    6eb68bb6
Name
Last commit
Last update
..
anchoring Loading commit data...
components Loading commit data...
config Loading commit data...
integrations Loading commit data...
test Loading commit data...
util Loading commit data...
.eslintrc.js Loading commit data...
adder.tsx Loading commit data...
annotation-counts.ts Loading commit data...
bucket-bar-client.ts Loading commit data...
bucket-bar.tsx Loading commit data...
features.ts Loading commit data...
frame-observer.ts Loading commit data...
guest.ts Loading commit data...
highlight-clusters.tsx Loading commit data...
highlighter.ts Loading commit data...
hypothesis-injector.ts Loading commit data...
index.ts Loading commit data...
notebook.tsx Loading commit data...
profile.tsx Loading commit data...
range-util.ts Loading commit data...
selection-observer.ts Loading commit data...
sidebar-trigger.ts Loading commit data...
sidebar.tsx Loading commit data...
toolbar.tsx Loading commit data...