Drag end not fired when there is a computation heavy task in drag start
Categories
(Core :: DOM: Copy & Paste and Drag & Drop, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox57 | --- | wontfix |
firefox58 | --- | wontfix |
firefox59 | --- | fix-optional |
People
(Reporter: georgkothmeier, Unassigned)
Details
Updated•7 years ago
|
Comment 1•7 years ago
|
||
Reporter | ||
Comment 2•7 years ago
|
||
Reporter | ||
Comment 3•6 years ago
|
||
Any updates on this issue? Should it be already resolved?
Reporter | ||
Comment 4•6 years ago
|
||
I wanted to follow up on this issue. Is this resolved in modern Firefox?
Comment 5•5 years ago
|
||
Yes this is still a thing in FF67, FF68 and it got even worse in FF69 which completely destroys the D&D event pipeline no matter if you reload or drag again. Only dragstart events will get fired from this point on.
You need to perform a drag & drop in Firefox but outside the concerning tab to repair the D&D state again.
I invested a view hours in my application to come up with this minimal reproducable example.
Just follow the instructions. You may need a view tries. ;)
<html>
<body>
<h3>With Firefox <= 69:</h3>
<ol>
<li>Drag the red box while not moving the cursor at all</li>
<li>No concentrate and move the cursor pixel by pixel until DRAGSTART is printed</li>
<li>In exact this moment release the mouse button</li>
</ol>
<h3>Congratulations! You broke the D&D pipeline of Firefox!</h3>
<p>Only dragstart events will be dispatched from now on. And yes in FF69, you can reload and drag again as much as you want.<br />
Once you perform a drag & drop outside of this tab, it will work again.</p>
<br />
<hr />
<div style="background-color: red; display: inline-block; height: 100px; width: 200px;" draggable="true" onDragstart="onDragstart(event)" onDragend="onDragend(event)"></div>
<hr />
<button onClick="clearOutput()">Clear output</button>
<div id="output" style="white-space: pre;"></div>
</body>
<script>
function onDragstart( e ) {
if( e.dataTransfer ) {
e.dataTransfer.effectAllowed = 'move';
e.dataTransfer.setData('text', "");
}
document.getElementById('output').innerHTML += "\nDRAGSTART";
}
function onDragend( e ) {
document.getElementById('output').innerHTML += "\nDRAGEND";
}
function clearOutput() {
document.getElementById('output').innerHTML = "";
}
</script>
</html>
In my Application (for some reason i don't yet know) the phenomenon occurs far more often and way easier.
The complaint tickets are stacking up since last week. I guess due to the 69 release. Before they could just drag again and everything was back to normal. Now it's quite a mess.
I have not yet found any workaround for this. I tried to mock the dragend event, no effect.
This is critical and i hope this will be solved in the near future. Thanks in advance.
Comment 6•5 years ago
|
||
I opened a new bug ticket since this one seems to be too old to get recognized.
https://bugzilla.mozilla.org/show_bug.cgi?id=1580688
Comment 7•5 years ago
|
||
We think this will be fixed by 1476195. Please reopen a build with that fix does not fix this issue.
Description
•