tor-browser

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

file_blob_response_worker.js (1237B)


      1 function makeFileBlob(obj) {
      2  return new Promise(function (resolve, reject) {
      3    var request = indexedDB.open("file_blob_response_worker", 1);
      4    request.onerror = reject;
      5    request.onupgradeneeded = function (evt) {
      6      var db = evt.target.result;
      7      db.onerror = reject;
      8 
      9      var objectStore = db.createObjectStore("test", { autoIncrement: true });
     10      var index = objectStore.createIndex("test", "index");
     11    };
     12 
     13    request.onsuccess = function (evt) {
     14      var db = evt.target.result;
     15      db.onerror = reject;
     16 
     17      var blob = new Blob([JSON.stringify(obj)], { type: "application/json" });
     18      var data = { blob, index: 5 };
     19 
     20      objectStore = db.transaction("test", "readwrite").objectStore("test");
     21      objectStore.add(data).onsuccess = function (event) {
     22        var key = event.target.result;
     23        objectStore = db.transaction("test").objectStore("test");
     24        objectStore.get(key).onsuccess = function (event1) {
     25          resolve(event1.target.result.blob);
     26        };
     27      };
     28    };
     29  });
     30 }
     31 
     32 self.addEventListener("fetch", function (evt) {
     33  var result = { value: "success" };
     34  evt.respondWith(
     35    makeFileBlob(result).then(function (blob) {
     36      return new Response(blob);
     37    })
     38  );
     39 });