• 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
..
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...
events.ts 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...