Skip to content

bug/major: ios/safari: fix issue with newer iOS release and webkit#53

Open
NicolasCARPi wants to merge 1 commit into
masterfrom
nico/260717-iosafarifix
Open

bug/major: ios/safari: fix issue with newer iOS release and webkit#53
NicolasCARPi wants to merge 1 commit into
masterfrom
nico/260717-iosafarifix

Conversation

@NicolasCARPi

Copy link
Copy Markdown
Owner

Recent WebKit/iOS Safari releases can hand Dropzone dropped File objects whose backing data becomes unavailable shortly after the drop event. In that state the drop is detected correctly, but the upload can send an empty body.

For plain file drops on Safari/iOS, eagerly read each dropped File with FileReader.readAsArrayBuffer() and rebuild a fresh File from the bytes before passing it to the existing handleFiles flow. This keeps the upload independent of the original transient file handle.

Keep directory drops on the existing DataTransferItem/webkitGetAsEntry path so folder traversal behavior is unchanged, and fall back to the original File if rehydration is unavailable or fails.

References:

fix #52

Make sure to run the test suite.

Recent WebKit/iOS Safari releases can hand Dropzone dropped File
objects whose backing data becomes unavailable shortly after the drop
event. In that state the drop is detected correctly, but the upload can
send an empty body.

For plain file drops on Safari/iOS, eagerly read each dropped File with
FileReader.readAsArrayBuffer() and rebuild a fresh File from the bytes
before passing it to the existing handleFiles flow. This keeps the upload
independent of the original transient file handle.

Keep directory drops on the existing DataTransferItem/webkitGetAsEntry
path so folder traversal behavior is unchanged, and fall back to the
original File if rehydration is unavailable or fails.

References:
- https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsArrayBuffer
- https://developer.mozilla.org/en-US/docs/Web/API/File
- https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/files
- https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem/webkitGetAsEntry

fix #52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Latest iOS Safari / Webkit Update Breaks Drag & Drop From Files

1 participant