v147 · Demo 2

Before / After Comparison

The event sequence a drag source used to receive versus the corrected sequence in Chrome 147+. Know what changed so you can update — or confirm you don't need to.

Before Chrome 147 pre-147
Chrome 147+ ✓ spec-compliant

What this means for your code

event sequence

// Chrome 147+ (spec-compliant):
// pointerdown  ← user presses
// pointermove  ← drag threshold crossed
// dragstart    ← HTML drag starts
// pointercancel ← NEW: stream terminated, drag owns the pointer
// pointerout    ← NEW: pointer left the element
// pointerleave  ← NEW: pointer left element + ancestors
// … drag continues …
// dragend       ← user releases
// (no pointerup — stream was cancelled)

// Before Chrome 147:
// pointerdown → pointermove → dragstart → dragend
//                                ↑ no cancellation = leaked state

see also