tor-browser

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

abort_on_reload.html (1146B)


      1 <!DOCTYPE html>
      2 
      3 <body>
      4  <script>
      5    function createDb() {
      6      return new Promise((resolve) => {
      7        const openRequest = indexedDB.open("test-abort-on-reload", 1);
      8        openRequest.onsuccess = () => {
      9          const db = openRequest.result;
     10          // This would throw when db is corrupted.
     11          db.transaction("databases", "readwrite");
     12          db.onversionchange = () => {
     13            db.close();
     14          };
     15          resolve();
     16        };
     17        openRequest.onupgradeneeded = () => {
     18          // Interrupt upgrade
     19          window.location.reload();
     20          opener.info('reload requested\n');
     21          openRequest.result.createObjectStore("databases");
     22        };
     23      });
     24    }
     25 
     26    function reset() {
     27      return new Promise((resolve) => {
     28        const request = indexedDB.deleteDatabase("test-abort-on-reload");
     29        request.onsuccess = resolve;
     30      });
     31    }
     32 
     33    async function test() {
     34      opener.postMessage("message", "*");
     35 
     36      for (let i = 0; i < 10; ++i) {
     37        opener.info(`iteration ${i}`);
     38        await createDb();
     39        await reset();
     40      }
     41    }
     42 
     43    test();
     44  </script>
     45 </body>