tor-browser

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

util.js (1459B)


      1 'use strict';
      2 
      3 // Makes sure initial bucket state is as expected and to clean up after the test
      4 // is over (whether it passes or fails).
      5 async function prepareForBucketTest(test) {
      6  // Verify initial state.
      7  assert_equals((await navigator.storageBuckets.keys()).join(), '');
      8  // Clean up after test.
      9  test.add_cleanup(async function() {
     10    const keys = await navigator.storageBuckets.keys();
     11    for (const key of keys) {
     12      await navigator.storageBuckets.delete(key);
     13    }
     14  });
     15 }
     16 
     17 function indexedDbOpenRequest(t, idb, dbname, upgrade_func) {
     18  return new Promise((resolve, reject) => {
     19    const openRequest = idb.open(dbname);
     20    t.add_cleanup(() => {
     21      indexedDbDeleteRequest(idb, dbname);
     22    });
     23 
     24    openRequest.onerror = () => {
     25      reject(openRequest.error);
     26    };
     27    openRequest.onsuccess = () => {
     28      resolve(openRequest.result);
     29    };
     30    openRequest.onupgradeneeded = event => {
     31      upgrade_func(openRequest.result);
     32    };
     33  });
     34 }
     35 
     36 function indexedDbDeleteRequest(idb, name) {
     37  return new Promise((resolve, reject) => {
     38    const deleteRequest = idb.deleteDatabase(name);
     39    deleteRequest.onerror = () => {
     40      reject(deleteRequest.error);
     41    };
     42    deleteRequest.onsuccess = () => {
     43      resolve();
     44    };
     45  });
     46 }
     47 
     48 function transactionPromise(txn) {
     49  return new Promise((resolve, reject) => {
     50    txn.onabort = () => {
     51      reject(txn.error);
     52    };
     53    txn.oncomplete = () => {
     54      resolve();
     55    };
     56  });
     57 }