tor-browser

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

test_view_image_revoked_cached_blob.html (1041B)


      1 <!doctype html>
      2 <html class="wait">
      3 <meta charset="utf-8">
      4 <title>currentSrc is right even if underlying image is a shared blob</title>
      5 <img id="first">
      6 <img id="second">
      7 <script>
      8 (async function() {
      9  let canvas = document.createElement("canvas");
     10  canvas.width = 100;
     11  canvas.height = 100;
     12  let ctx = canvas.getContext("2d");
     13  ctx.fillStyle = "green";
     14  ctx.rect(0, 0, 100, 100);
     15  ctx.fill();
     16 
     17  let blob = await new Promise(resolve => canvas.toBlob(resolve));
     18 
     19  let first = document.querySelector("#first");
     20  let second = document.querySelector("#second");
     21 
     22  let firstLoad = new Promise(resolve => {
     23    first.addEventListener("load", resolve, { once: true });
     24  });
     25 
     26  let secondLoad = new Promise(resolve => {
     27    second.addEventListener("load", resolve, { once: true });
     28  });
     29 
     30  let uri1 = URL.createObjectURL(blob);
     31  let uri2 = URL.createObjectURL(blob);
     32  first.src = uri1;
     33  second.src = uri2;
     34 
     35  await firstLoad;
     36  await secondLoad;
     37  URL.revokeObjectURL(uri1);
     38  document.documentElement.className = "";
     39 }());
     40 </script>