Intent to Ship: Correctly set "dropEffect" for "dragEnter", "dragLeave" and "dragOver" events

36 views
Skip to first unread message

Chromestatus

unread,
12:53 PM (4 hours ago) 12:53 PM
to blin...@chromium.org, gas...@microsoft.com, gerc...@microsoft.com
Contact emails
gas...@microsoft.com, gerc...@microsoft.com

Specification
https://html.spec.whatwg.org/multipage/dnd.html#dndevents

Summary
The drag and drop specifications require the "dataTransfer"'s object "dropEffect" attribute to have certain predetermined values on "dragEnter", "dragOver" and "dragLeave". Drag enter and drag over should have a "dropEffect" based on the current "effectAllowed", and "dragLeave" should always have a "none" "dropEffect". Currently, Chromium doesn't adhere to these rules. With the launch of this feature, Chromium will start respecting the specification and assigning the correct values to this attribute so that web developers can start relying on it.

Blink component
Blink>DataTransfer

Web Feature ID
draganddrop

Motivation
Many bug reports have been filed over the years by developers being affected by the lack of a correct dropEffect implementation: https://issues.chromium.org/issues?q=title:*dropEffect*

Initial public proposal
No information provided

TAG review
No information provided

TAG review status
Not applicable

Risks


Interoperability and Compatibility
None. Drop effect is reported as working properly in Firefox and Safari

Gecko: Shipped/Shipping

WebKit: Shipped/Shipping

Web developers: Strongly positive Visiting the crbug query linked in the "Motivation" section will show strong sentiment from web developers in wanting this fixed.

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. Should any implementation issue be found, we have a feature flag acting as a kill switch (SetDefaultDropEffect).


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
* WPT: "dropEffect" and "effectAllowed" are tested in: https://wpt.fyi/results/html/editing/dnd/drop?label=master&label=experimental&aligned * Other tests: We have unit tests (drag_and_drop_interactive_uitest.cc) and blink web tests (third_party/blink/web_tests/fast/dnd/*) verifying the correct functioning of this behavior.

Flag name on about://flags
None

Finch feature name
SetDefaultDropEffect

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/434151262

Estimated milestones
Shipping on desktop148
Shipping on Android148


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/6325617459068928?gate=6549835522113536

This intent message was generated by Chrome Platform Status.

Alex Russell

unread,
2:54 PM (2 hours ago) 2:54 PM
to blink-dev, Chromestatus, gas...@microsoft.com, gerc...@microsoft.com
LGTM1.

Thanks for fixing long-standing compat issues. Deeply appreciated.

Best,

Alex

Dan Clark

unread,
2:54 PM (2 hours ago) 2:54 PM
to blink-dev, sligh...@chromium.org, Chromestatus, gas...@microsoft.com, gerc...@microsoft.com
LGTM2

Mike Taylor

unread,
3:04 PM (2 hours ago) 3:04 PM
to Dan Clark, blink-dev, sligh...@chromium.org, Chromestatus, gas...@microsoft.com, gerc...@microsoft.com

LGTM3

--
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 blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/cd07c577-b984-447f-9f67-50be18575bafn%40chromium.org.
Reply all
Reply to author
Forward
0 new messages