tor-browser

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

service_worker_etp.js (650B)


      1 onmessage = function (e) {
      2  const message = e.data;
      3 
      4  if (message === "IsETPAllowListed") {
      5    sendMessage(!isOffscreenAPlaceHolder());
      6  }
      7 };
      8 
      9 function isOffscreenAPlaceHolder() {
     10  const canvas = new OffscreenCanvas(4, 4);
     11  const context = canvas.getContext("2d");
     12  // An empty canvas would return 0,0,0,0 for the pixel data.
     13  return !context.getImageData(0, 0, 4, 4).data.every(el => el === 0);
     14 }
     15 
     16 function sendMessage(message) {
     17  self.clients.matchAll({ includeUncontrolled: true }).then(function (res) {
     18    if (!res.length) {
     19      dump("Error: no clients are available.\n");
     20      return;
     21    }
     22    res[0].postMessage(message);
     23  });
     24 }