• Eduardo Sanz García's avatar
    Fix race condition when annotations are deleted before anchoring · 64533dc4
    Eduardo Sanz García authored
    `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
    64533dc4
Name
Last commit
Last update
.github Loading commit data...
bin Loading commit data...
dev-server Loading commit data...
docs Loading commit data...
embedding-examples Loading commit data...
images Loading commit data...
requirements Loading commit data...
scripts Loading commit data...
src Loading commit data...
.babelrc Loading commit data...
.dockerignore Loading commit data...
.eslintignore Loading commit data...
.eslintrc Loading commit data...
.gitignore Loading commit data...
.npmignore Loading commit data...
.npmrc Loading commit data...
.prettierignore Loading commit data...
.python-version Loading commit data...
CODE_OF_CONDUCT Loading commit data...
Dockerfile Loading commit data...
Jenkinsfile Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
codecov.yml Loading commit data...
gulpfile.mjs Loading commit data...
package.json Loading commit data...
pyproject.toml Loading commit data...
requirements-dev.in Loading commit data...
rollup-boot.config.mjs Loading commit data...
rollup-tests.config.mjs Loading commit data...
rollup.config.mjs Loading commit data...
tailwind.config.mjs Loading commit data...
tox.ini Loading commit data...
tsconfig.json Loading commit data...
yarn.lock Loading commit data...