← Back to release summary

Pointer event suppression on drag start

Category
User input
Type
Chromium catches up
Status
Proposed (Chrome Proposed)
Intent stage
None

Summary

According to the HTML spec, when a drag starts the user agent should send the appropriate events to the drag source to indicate that the pointer event stream has ended, and that it shouldn't expect any more events from this pointer [1]. This code had been partially implemented for mouse events and fully implemented for touch drags on Android. With the work in this feature, we aim to fully satisfy this spec requirement on all other platforms. Practically, this means that after a drag has started the drag source will now receive the `pointercancel`, `pointerout` and `pointerleave` events to indicate that the current event stream has finished. [1] Pointer event spec definition of pointer stream suppression: https://w3c.github.io/pointerevents/#suppressing-a-pointer-event-stream

Motivation

Chromium is currently out of spec when starting drag-and-drop operations. According to the specification, the user agent must notify the drag source that it will no longer receive pointer events from the same input source by firing the corresponding drag-* events. This behavior is fully implemented only on Android; on other platforms, Chromium does not fire all of the required events.

Standards & signals

View on chromestatus.com