ProjectMirador / mirador

An open-source, web-based 'multi-up' viewer that supports zoom-pan-rotate functionality, ability to display/compare simple images, and images with annotations.
https://projectmirador.org
Apache License 2.0
548 stars 258 forks source link

Safari - drag/drop of v2 manifest into m3 viewer creates a window for the dragged icon rather than the manifest #3403

Open yulgit1 opened 3 years ago

yulgit1 commented 3 years ago

Screen Shot 2021-03-31 at 1 47 30 PM Screen Shot 2021-03-31 at 1 47 18 PM

1st screenshot using viewer on: https://view.collections.yale.edu/m3 (shows icon window and manifest window) 2nd screenshot using viewer on: https://projectmirador.org (just shows icon window)

v2 (problem, from page: https://collections.britishart.yale.edu/catalog/tms:5005) <a target="_blank" class="" href="http://mirador.britishart.yale.edu/?manifest=https://manifests.britishart.yale.edu/manifest/5005"><img src="https://manifests.britishart.yale.edu/logo-iiif.png" class="img-responsive" alt="IIIF Manifest"></a>

camillevilla commented 3 years ago

Thanks for reporting, @yulgit1. Some initial observations until someone has time to investigate further:

I haven't been following developments with the IIIF Content State API drag and drop behavior, but maybe @regisrob might have some insight here.

regisrob commented 3 years ago

It seems to be a Safari problem, and I am not even able to drag and drop from one tab to another in Safari (I have to move the tab to a new window and then drag the icon from here and drop it to the mirador tab in the other window). It works perfectly fine in Chrome and Firefox on Mac OS.

Both Stanford and e-codices work for me. The problem with e-codices is just that the Manifest takes some time to load. In both cases the drag and drop behavior in Mirador (both 2 and 3) relies on the manifest parameter in the URL given in the href of the iiif icon.

I do not have further details regarding drag and drop operation as defined by the Content State API. The behavior just relies on the HTML Drag and Drop API, and the spec simply tells that the iiif content to be dropped can be either a plain URI (e.g. a Manifest) or JSON-LD in both unencoded and base64url encoded forms (i.e. a Content State annotation, I suppose).