The Wayland protocol documentation does not indicate when wl_data_offer::receive requests can be sent, nor when wl_data_source::send events will be received. Some clients may assume that data may be sent only once for a single MIME type during a DnD session (which GTK+ does to work around bug #91944). Other clients may be prepared to handle multiple simultaneous data transfers (when dl_data_offer::receive is called several times in a row, perhaps in a loop), while yet others may be prepared to handle multiple data transfers only if one is ongoing at a time. The protocol should provide some indication of what well-behaved clients should be expected to support.
It's important to also consider some limit on the number of simultaneous data requests. I previously discovered a file descriptor denial of service against GTK+ by calling wl_data_offer::receive thousands of times in a loop in response to receiving wl_data_device::drag_enter. Nowadays GTK+ is careful to allow only one request at a time, avoiding this issue, but it's not clear from the documentation if this is appropriate or not, as other clients may reasonably expect to be able to call wl_data_offer::receive multiple times in a row.
"This request may happen multiple times for different mimetypes, both before and after wl_data_device.drop. Drag-and-drop destination clients may preemptively fetch data or examine it more closely to determine acceptance."
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.