tor-browser

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

trackingAPI.js (2098B)


      1 function createIframe(src) {
      2  let ifr = document.createElement("iframe");
      3  ifr.src = src;
      4  document.body.appendChild(ifr);
      5 }
      6 
      7 function createImage(src) {
      8  let img = document.createElement("img");
      9  img.src = src;
     10  img.onload = () => {
     11    parent.postMessage("done", "*");
     12  };
     13  document.body.appendChild(img);
     14 }
     15 
     16 onmessage = event => {
     17  switch (event.data) {
     18    case "tracking":
     19      createIframe("https://trackertest.org/");
     20      break;
     21    case "socialtracking":
     22      createIframe(
     23        "https://social-tracking.example.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs"
     24      );
     25      break;
     26    case "cryptomining":
     27      createIframe("http://cryptomining.example.com/");
     28      break;
     29    case "fingerprinting":
     30      createIframe("https://fingerprinting.example.com/");
     31      break;
     32    case "more-tracking":
     33      createIframe("https://itisatracker.org/");
     34      break;
     35    case "cookie":
     36      createIframe(
     37        "https://trackertest.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs"
     38      );
     39      break;
     40    case "first-party-cookie":
     41      // Since the content blocking log doesn't seem to get updated for
     42      // top-level cookies right now, we just create an iframe with the
     43      // first party domain...
     44      createIframe(
     45        "http://not-tracking.example.com/browser/browser/base/content/test/protectionsUI/cookieServer.sjs"
     46      );
     47      break;
     48    case "third-party-cookie":
     49      createIframe(
     50        "https://test1.example.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs"
     51      );
     52      break;
     53    case "image":
     54      createImage(
     55        "http://trackertest.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs?type=image-no-cookie"
     56      );
     57      break;
     58    case "window-open":
     59      window.win = window.open(
     60        "http://trackertest.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs",
     61        "_blank",
     62        "width=100,height=100"
     63      );
     64      break;
     65    case "window-close":
     66      window.win.close();
     67      window.win = null;
     68      break;
     69  }
     70 };