tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

006-manual.html (2819B)


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