Intent to Ship: Pointer event suppression on drag start

37 views
Skip to first unread message

Chromestatus

unread,
Feb 25, 2026, 2:49:41 PM (10 hours ago) Feb 25
to blin...@chromium.org, gas...@microsoft.com, gerc...@microsoft.com, mus...@chromium.org
Contact emails
gas...@microsoft.com

Specification
https://html.spec.whatwg.org/multipage/dnd.html#drag-and-drop-processing-model:~:text=Fire%20a%20pointer%20event%20at%20the%20source%20node%20named%20pointercancel%2C%20and%20fire%20any%20other%20follow%2Dup%20events%20as%20required%20by%20Pointer%20Events.%20%5BPOINTEREVENTS%5D

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. [1] Pointer event spec definition of pointer stream suppression: https://w3c.github.io/pointerevents/#suppressing-a-pointer-event-stream

Blink component
Blink>DataTransfer

Web Feature ID
draganddrop

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.

Initial public proposal
No information provided

TAG review
No information provided

TAG review status
Not applicable

Risks


Interoperability and Compatibility
Other browsers also fall out of spec in this particular point and don't send the appropriate events when a drag starts, which means that Chromium will be the only browser that implements this behavior.

Gecko: Neutral (https://bugzilla.mozilla.org/show_bug.cgi?id=1994552) A bug has been filed and has received interest from Firefox developers.

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/598) (Will update the signal when the issue receives feedback)

Web developers: Positive (https://github.com/w3c/pointerevents/issues/555) We have received developer feedback [1] regarding the browser's behavior with respect to the specification.

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

No, and if any issue is found, we have a feature flag acting as a kill switch (SuppressPointerStreamAfterDrag).


Debuggability
No additional functionality is needed to be added to debug this feature

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
Yes
https://wpt.fyi/results/html/editing/dnd/events/pointer-suppression.html (currently failing because the change is behind a disabled feature flag)

Flag name on about://flags
No information provided

Finch feature name
SuppressPointerStreamAfterDrag

Non-finch justification
The feature will be shipped enabled by default to be used as a kill-switch in case a severe issue is discovered.

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Tracking bug
https://issues.chromium.org/issues/452372355

Estimated milestones
Shipping on desktop147
Shipping on Android147


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

N/A

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6732314958757888?gate=6606447989358592

This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages