Thanks Rick and Philip. And yes - I will try and automate the existing manual test for this feature as part of shipping it.
On Wednesday, January 21, 2026 at 9:41:25 PM UTC+5:30 Philip Jägenstedt wrote: > LGTM3 > > Thanks Rohan for digging into the testing situation. It's great to hear > that there's already an effort to automate DnD tests, and it would be great > if this test can be moved over to the new infrastructure. If that's already > possible with the work that has already landed, it would be great if you > can give it a try as part of shipping this change. > > On Wed, Jan 21, 2026 at 4:53 PM Rick Byers <[email protected]> wrote: > >> 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/25402bd3-f31e-43f0-a9c3-fd9e26a405e6n%40chromium.org.
