It seems that, with webkit_web_context_set_sandbox_enabled set to true, dropping a directory results in a FileSystemFileEntry instead of FileSystemDirectoryEntry.
This can be reproduced with this demo:
Opening this demo with Epiphany, dragging and dropping a directory yields a single entry, rather than the whole directory tree. In a WebView without sandboxing, it works as expected.
It’s a bug, certainly, but the question is where. I thought this would be handled by either a data transfer portal or a drag-and-drop portal, but they don’t seem to exist. So no clue how drag-and-drop is handled in sandboxed environments. Anyone know how this is supposed to work?