Skip to content

Commit 252bc41

Browse files
gjc13chromium-wpt-export-bot
authored andcommitted
Revert "Send dropEffect attribute on drag and drop events"
This reverts commit 0542983115c4ccbaa2b1dd15faff2675d520bbeb. Reason for revert: Lots of CrossSiteSubframe/DragAndDropBrowserTest tests are broken. https://ci.chromium.org/ui/p/chromium/builders/ci/Linux%20ChromiumOS%20MSan%20Tests Bug: 442927728,434151262 Original change's description: > Send dropEffect attribute on drag and drop events > > This CL implements the dropEffect attribute in the dataTransfer property > in drag and drop event to match the spec. > https://html.spec.whatwg.org/multipage/dnd.html > > The attribute is currently not being set, defaulting to "none" on all > events. > > Many existing tests were updated to pass with the new implementation. > Notably, the default dropEffect for some "effectAllowed" attributes has > been changed to match the defaults in the table found in "6.11.4 The > DragEvent interface" in the spec. (defaulting to copy whenever copy is > available, and to link if link is available) > > Bug: 434151262 > Change-Id: Iaeaa7e0e4b9a44e89379b6adf72650ab89fe3dd3 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6803149 > Commit-Queue: Gaston Rodriguez <[email protected]> > Reviewed-by: Avi Drissman <[email protected]> > Reviewed-by: Olga Gerchikov <[email protected]> > Reviewed-by: Kent Tamura <[email protected]> > Cr-Commit-Position: refs/heads/main@{#1509844} Bug: 442927728,434151262 Change-Id: I6eb9f9f6d79025b691e5ae77ed4090ad76b6f99a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6915315 Commit-Queue: Jiacheng Guo <[email protected]> Bot-Commit: Rubber Stamper <[email protected]> Owners-Override: Jiacheng Guo <[email protected]> Cr-Commit-Position: refs/heads/main@{#1510766}
1 parent 1ebd4ad commit 252bc41

File tree

1 file changed

+32
-72
lines changed

1 file changed

+32
-72
lines changed

html/editing/dnd/drop/001.xhtml

Lines changed: 32 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,38 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<html xmlns="http://www.w3.org/1999/xhtml">
3-
<script src="/resources/testharness.js"></script>
4-
<script src="/resources/testharnessreport.js"></script>
5-
<script src="/resources/testdriver.js"></script>
6-
<script src="/resources/testdriver-vendor.js"></script>
7-
<script src="/resources/testdriver-actions.js"></script>
8-
<script src="../resources/test-helper.js"></script>
93
<head>
10-
<title>dropEffect is correctly set when it matches effectAllowed</title>
11-
<style type="text/css">
12-
div {
13-
display: inline-block;
14-
vertical-align: top;
15-
background-color: olive;
16-
color: white;
17-
padding: 20px;
18-
width: 100px;
19-
height: 100px;
20-
}
21-
22-
div:nth-child(2) {
23-
background-color: green;
24-
}
25-
26-
div:nth-child(3) {
27-
background-color: teal;
28-
}
29-
30-
</style>
4+
<title>Selection drag and drop: allowed effects 'copy','move','link'</title>
5+
<style type="text/css">
6+
div
7+
{display:inline-block;
8+
vertical-align:top;
9+
background-color:olive;
10+
color:white;
11+
padding:20px;
12+
width:100px;
13+
height:100px;}
14+
div:nth-child(2)
15+
{background-color:green;}
16+
div:nth-child(3)
17+
{background-color:teal;}
18+
</style>
19+
<script type="application/ecmascript">
20+
var effects = ['copy','move','link'], i = 0;
21+
function selectText()
22+
{window.getSelection().selectAllChildren(document.querySelector('p'))}
23+
function dropSelection(event)
24+
{event.target.appendChild(document.createTextNode((event.dataTransfer.dropEffect == effects[i] &amp;&amp; event.dataTransfer.effectAllowed == effects[i])?' PASS ':' FAIL '));
25+
i = (i + 1)%3;
26+
selectText();}
27+
function start(event)
28+
{event.dataTransfer.effectAllowed = effects[i]}
29+
</script>
3130
</head>
32-
<body>
33-
<p>
34-
Drag these boxes. Each box has a different effectAllowed.
35-
</p>
36-
<p>
37-
<div id="copy-drag" draggable="true"
38-
ondragstart="event.dataTransfer.effectAllowed = 'copy'">copy</div>
39-
<div id="move-drag" draggable="true"
40-
ondragstart="event.dataTransfer.effectAllowed = 'move'">move</div>
41-
<div id="link-drag" draggable="true"
42-
ondragstart="event.dataTransfer.effectAllowed = 'link'">link</div>
43-
</p>
44-
<p>
45-
Drop on these boxes. Each box has a different dropEffect.
46-
</p>
47-
<p>
48-
<div id="copy-drop" ondragover="onDragOver(event, 'copy')">copy</div>
49-
<div id="move-drop" ondragover="onDragOver(event, 'move')">move</div>
50-
<div id="link-drop" ondragover="onDragOver(event, 'link')">link</div>
51-
</p>
31+
<body onload="selectText()">
32+
<p ondragstart="start(event)">Drag me</p>
33+
<div ondragenter="event.preventDefault()" ondragover="return false" ondrop="dropSelection(event)"/>
34+
<div ondragenter="event.preventDefault()" ondragover="return false" ondrop="dropSelection(event)"/>
35+
<div ondragenter="event.preventDefault()" ondragover="return false" ondrop="dropSelection(event)"/>
36+
<p>You should be able to drag selection and drop it onto any of the green boxes.</p>
5237
</body>
53-
<script>
54-
function onDragOver(event, effectAllowed) {
55-
event.preventDefault();
56-
event.dataTransfer.dropEffect = effectAllowed;
57-
}
58-
59-
async function test() {
60-
await new Promise(loaded => window.addEventListener("load", loaded));
61-
62-
function onDropCallBack(event) {
63-
assert_equals(event.target.textContent, event.dataTransfer.dropEffect);
64-
assert_equals(event.target.textContent, event.dataTransfer
65-
.effectAllowed);
66-
return true;
67-
}
68-
for (const effect of ['copy', 'move', 'link']) {
69-
const dragDiv = document.getElementById(effect + '-drag');
70-
const dropDiv = document.getElementById(effect + '-drop');
71-
dragDropTest(
72-
dragDiv, dropDiv, onDropCallBack,
73-
'dropEffect should match effectAllowed on drop for ' + effect);
74-
}
75-
}
76-
test();
77-
</script>
7838
</html>

0 commit comments

Comments
 (0)