• Robert Knight's avatar
    Avoid unloading annotations after VitalSource segment navigation · 8c80e65a
    Robert Knight authored
    Introduce the concept of "persistent" frames in the sidebar. This is a flag
    which can be set on a `Frame` in the sidebar's store to prevent annotations from
    being unloaded when the associated guest unloads. This flag is set in response
    to a hint provided by the `Guest` in its `documentInfoChanged` message. The
    guest in turn gets this hint via `Integration.persistFrame`, which returns true
    for VitalSource content frames.
    
    Marking VitalSource content frames as persistent prevents the book's annotations
    from being unloaded after a chapter navigation, when the old guest goes away,
    and then the same set of annotations immediately being re-fetched from the
    server when the new guest connects. This reload of annotations looked ugly but
    also lost the user's scroll position in the sidebar. With this change the
    sidebar retains the annotations during a chapter navigation and just re-sends
    the appropriate ones to the new guest when it connects.
    8c80e65a
frames.js 5.71 KB