Fix race condition when annotations are deleted before anchoring
`deleteAnnotation` RPC event can be triggered before `loadAnnotations`. This is a race condition in which annotations are asked to be deleted in the `sidebar` frame before the `guest` frame finishes to anchor the annotations. B This problem is avoided by maintaining one additional set which tracks the annotations that should be in the page. This can be updated 1) when an annotation is received, just before it is anchored and 2) when an annotation is detached. After anchoring completes, the logic can check if the annotation should still be present in the page and skip saving the anchor if not. Solution from here: https://github.com/hypothesis/client/pull/4007#discussion_r763971360
Showing
Please register or sign in to comment