• Robert Knight's avatar
    Cleanup and abort if annotator finds existing `<hypothesis-sidebar>` · a7239d05
    Robert Knight authored
    Fix an issue where multiple Hypothesis sidebar (and possibly notebook, profile
    etc.) iframes could get created when saving a local snapshot of a web page where
    Hypothesis was loaded. This would lead to one of the sidebars not functioning
    because the host frame only allows one sidebar to connect.
    
    Aside from there being multiple sidebars, there are other problems in such an
    environment, such as the URL not matching the original page URL.  Hence this
    commit handles this scenario by detecting it when the annotator bundle loads,
    removing the existing `<hypothesis-sidebar>` element and then aborting startup.
    
    The end result for the user is that if they save a snapshot of a page with
    Hypothesis loaded and later reload it, the visible highlights will still appear
    in the page but other Hypothesis UI elements will not be visible.
    
    The scenario described here applies in Chrome when saving a snapshot with the
    "Web Page, Complete" file type. If the user instead selects "Web Page, HTML
    only" or "Web Page, single file" they will get different results, but those
    were already not problematic because no JS was executed.
    
    Fixes https://github.com/hypothesis/client/issues/5827
    a7239d05
Name
Last commit
Last update
.github Loading commit data...
.yarn 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...
.eslintignore Loading commit data...
.eslintrc Loading commit data...
.gitignore Loading commit data...
.npmignore Loading commit data...
.prettierignore Loading commit data...
.python-version Loading commit data...
.readthedocs.yaml Loading commit data...
.yarnrc.yml Loading commit data...
HACKING.md 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...
rollup-boot.config.mjs Loading commit data...
rollup-tests.config.mjs Loading commit data...
rollup.config.mjs Loading commit data...
tailwind-annotator.config.mjs Loading commit data...
tailwind-sidebar.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...