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.

Reply via email to