tor-browser

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

localstorage-about-blank-partitioned-iframe.html (1025B)


      1 <!doctype html>
      2 <meta charset="utf-8">
      3 <script>
      4 function getOrCreateID(key) {
      5  if (!localStorage.getItem(key)) {
      6    const newID = +new Date() + "-" + Math.random();
      7    localStorage.setItem(key, newID);
      8  }
      9  return localStorage.getItem(key);
     10 }
     11 
     12 window.addEventListener("load", () => {
     13  // if we have an opener, we know that we are loaded inside a cross-site
     14  // iframe (because we opened it ourselves).
     15  if (parent.opener) {
     16    const payload = {
     17      message: "cross-site window iframe loaded",
     18      userID: getOrCreateID("userID"),
     19    }
     20    parent.opener.postMessage(payload, parent.opener.origin);
     21  }
     22 });
     23 
     24 window.addEventListener("message", (e) => {
     25  if (e.data.command == "create ID") {
     26    getOrCreateID(e.data.key);
     27 
     28    // storage is set, call back to window.
     29    const payload = {
     30      message: "ID created",
     31      userID: localStorage.getItem("userID"),
     32    }
     33 
     34    e.source.postMessage(payload, e.source.origin);
     35  }
     36 
     37  if (e.data.command == "clearStorage") {
     38    localStorage.clear();
     39  }
     40 });
     41 </script>