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 Web Feature ID 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, 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? 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 (eg links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (eg, 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. -- 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.
