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
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 desktop | 148 |
| Shipping on Android | 148 |
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