1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
<!doctype html>
<html>
<head>
<title>Synthetic events using real dataTransfer in new thread</title>
<style type="text/css">
blockquote { height: 100px; width: 100px; background: orange; margin: 0; padding: 0; float: left; }
blockquote + blockquote { background: blue; }
blockquote + blockquote + blockquote { background: fuchsia; }
blockquote + div { clear: left; }
</style>
<script type="text/javascript" src="/resources/testharness.js"></script>
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
<script type="text/javascript">
setup(function () {},{explicit_done:true,explicit_timeout:true});
window.onload = function () {
var orange = document.getElementsByTagName('blockquote')[0],
blue = document.getElementsByTagName('blockquote')[1],
fuchsia = document.getElementsByTagName('blockquote')[2],
evtdone = {};
orange.ondragstart = function (e) {
e.dataTransfer.effectAllowed = 'copy';
e.dataTransfer.setData('text','dragstart real data');
var dataTransfer = e.dataTransfer;
setTimeout(function () {
var t = async_test('new thread should see data store in protected mode after dragstart');
blue.ondragstart = function (e) {
t.step(function() {
assert_equals( e.dataTransfer.getData('text'), '', 'step 1' );
e.dataTransfer.setData('text','new thread after dragstart');
assert_equals( e.dataTransfer.getData('text'), '', 'step 2' );
});
};
t.step(function() {
var evt = new DragEvent('dragstart', {dataTransfer:dataTransfer});
blue.dispatchEvent(evt);
});
t.done();
},0);
};
fuchsia.ondragenter = fuchsia.ondragover = function (e) {
e.preventDefault();
};
fuchsia.ondrop = function (e) {
e.preventDefault();
var dataTransfer = e.dataTransfer;
setTimeout(function () {
var t = async_test('new thread should see data store in protected mode after drop');
blue.ondragstart = function (e) {
t.step(function() {
assert_equals( e.dataTransfer.getData('text'), '', 'step 1' );
e.dataTransfer.setData('text','new thread after dragstart');
assert_equals( e.dataTransfer.getData('text'), '', 'step 2' );
});
};
t.step(function() {
var evt = new DragEvent('dragstart', {dataTransfer:dataTransfer});
blue.dispatchEvent(evt);
});
t.done();
done();
},0);
};
};
</script>
</head>
<body>
<p>Drag the orange square over the blue square then the fuchsia square, then release it.</p>
<blockquote draggable="true"></blockquote>
<blockquote></blockquote>
<blockquote></blockquote>
<div id="log"></div>
<noscript><p>Enable JavaScript and reload</p></noscript>
</body>
</html>
|