This seems like a bugfix to me and the web compat risk seems likely to be low so presence of a killswitch flag seems adequate to me. LGTM2
Thank you for working to improve DnD spec conformance and utility, I know it needs it! On Thu, Jan 15, 2026 at 4:50 AM 'Rohan Raja' via blink-dev < [email protected]> wrote: > Thanks Alex and Philip for reviewing this intent. > > Without the dropEffect fix, the > https://wpt.live/html/editing/dnd/drop/025.html WPT prints: > "FAIL: drag dropEffect move instead of none > dragenter dropEffect none instead of copy > dragover dropEffect none instead of copy > dragover dropEffect none instead of copy on second attempt > drop dropEffect none instead of link > dragend dropEffect link instead of move" > > After applying the fix (setting --enable-blink-features=PreserveDropEffect > flag in Chromium), the WPT still has two failures independent of this > feature: > "FAIL: drag dropEffect move instead of none > dragend dropEffect link instead of move" > > Both these failures seem to be existing bugs in Chromium (and even in > Firefox) since they don't match the spec. I have logged spec mis-match bugs > for the same in Chromium. The details can be found in the bug descriptions > below: > - https://issues.chromium.org/issues/475998132 > - https://issues.chromium.org/issues/475998138 > > Regarding automation of this WPT, the testharness in wpt infra seem to > already provide helper functions to simulate drag/drop behaviour (like done > here https://chromium-review.googlesource.com/c/chromium/src/+/6955024). > There is an ongoing effort for automating the manual DnD tests which is > being tracked here - https://issues.chromium.org/issues/40216874. The > last change appears to be from a few months ago, so I will follow up with > the owner to see if any help is needed. Meanwhile, in Chromium we do have > internal automated web tests which cover this feature - > https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/fast/events/drag-and-drop/drop-effect-preservation-basic.html?q=third_party%2Fblink%2Fweb_tests%2Ffast%2Fevents%2Fdrag-and-drop%2Fdrop-effect-preservation-basic.html > > Thanks > Rohan Raja > > On Wednesday, January 14, 2026 at 9:51:58 PM UTC+5:30 Philip Jägenstedt > wrote: > >> Hi Rohan, >> >> I tried https://wpt.live/html/editing/dnd/drop/025.html in Firefox >> (macOS) and it fails, but in a different way from Chrome. Does this test >> match the spec, and if it does will Chrome fully pass it with these >> changes? I'm trying to understand if we are going to match Firefox in the >> details here. >> >> Also, can this test be automated, and if not what kind of testing >> infrastructure is missing? >> >> Best regards, >> Philip >> >> On Tue, Jan 13, 2026 at 6:37 AM Chromestatus < >> [email protected]> wrote: >> >>> *Contact emails* >>> [email protected] >>> >>> *Specification* >>> >>> https://www.w3.org/TR/2011/WD-html5-20110113/dnd.html#dom-datatransfer-dropeffect >>> >>> *Summary* >>> The HTML5 Drag and Drop API allows web applications to handle >>> drag-and-drop operations through a series of events: `dragstart`, >>> `dragenter`, `dragover`, `dragleave`, `drop`, and `dragend`. During these >>> events, the [`dataTransfer.dropEffect`]( >>> https://www.w3.org/TR/2011/WD-html5-20110113/dnd.html#dom-datatransfer-dropeffect) >>> property indicates which operation (copy, move, link, or none) should be >>> performed. According to the [HTML5 specification]( >>> https://www.w3.org/TR/2011/WD-html5-20110113/dnd.html#dndevents), the >>> `dropEffect` value set by web applications during the last `dragover` event >>> should be preserved and available in the subsequent `drop` event. However, >>> Chromium-based browsers were overwriting the web application's `dropEffect` >>> value with the browser's own negotiated operation before the `drop` event >>> fired, breaking specification compliance and limiting developer control >>> over drag-and-drop behavior. >>> >>> *Blink component* >>> Blink>DataTransfer >>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EDataTransfer%22> >>> >>> *Web Feature ID* >>> draganddrop <https://webstatus.dev/features/draganddrop> >>> >>> *Motivation* >>> The current behavior: - Violates the HTML5 specification: Contradicts >>> the standardized behavior defined in the HTML5 Drag and Drop API - Breaks >>> developer control: Removes the ability for web applications to manage their >>> own drag-and-drop operations - Creates unpredictable UX: The operation >>> indicated during drag (via cursor feedback) may not match what's available >>> in the drop handler - Forces workarounds: Developers must store >>> `dropEffect` values in global variables or custom data attributes rather >>> than using the standard API - Limits functionality: Makes it impossible to >>> build spec-compliant file managers, code editors, and other applications >>> requiring sophisticated drag-and-drop >>> >>> *Initial public proposal* >>> *No information provided* >>> >>> *Search tags* >>> draganddrop <http:///features#tags:draganddrop>, dropEffect >>> <http:///features#tags:dropEffect> >>> >>> *TAG review* >>> *No information provided* >>> >>> *TAG review status* >>> Not applicable >>> >>> *Risks* >>> >>> >>> *Interoperability and Compatibility* >>> *No information provided* >>> >>> *Gecko*: Shipped/Shipping >>> >>> *WebKit*: No signal ( >>> https://github.com/WebKit/standards-positions/issues/596) >>> >>> *Web developers*: Strongly positive ( >>> https://issues.chromium.org/issues/40068941) 42 upvotes on the >>> associated Chromium issue >>> >>> *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? >>> None >>> >>> >>> *Debuggability* >>> No new functionality needed for debuggability >>> >>> *Will this feature be supported on all six Blink platforms (Windows, >>> Mac, Linux, ChromeOS, Android, and Android WebView)?* >>> Yes >>> This is a blink level change independent of platform implementation. >>> >>> *Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?* >>> Yes >>> There are few manual WPTs like >>> https://wpt.live/html/editing/dnd/drop/025.html which cover this >>> feature. Chromium has internal web tests / unit tests as well for this >>> feature. >>> >>> *Flag name on about://flags* >>> *No information provided* >>> >>> *Finch feature name* >>> PreserveDropEffect >>> >>> *Rollout plan* >>> Will ship enabled for all users >>> >>> *Requires code in //chrome?* >>> False >>> >>> *Tracking bug* >>> https://issues.chromium.org/issues/40068941 >>> >>> *Estimated milestones* >>> Shipping on desktop 146 >>> Shipping on Android 146 >>> Shipping on WebView 146 >>> >>> *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). >>> *No information provided* >>> >>> *Link to entry on the Chrome Platform Status* >>> https://chromestatus.com/feature/5140028068069376?gate=6545001561587712 >>> >>> This intent message was generated by Chrome Platform Status >>> <https://chromestatus.com>. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "blink-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6965d9fc.050a0220.10ef4e.02b1.GAE%40google.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6965d9fc.050a0220.10ef4e.02b1.GAE%40google.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/3e1a82d8-37cb-4cb4-a148-2015c5db14a7n%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/3e1a82d8-37cb-4cb4-a148-2015c5db14a7n%40chromium.org?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY8U-12zJCq7tn3NwwKM1FkRKpmqPAq%2BMqSvJ3iTrOYdpQ%40mail.gmail.com.
