tor-browser

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

bfcache-test-page.js (975B)


      1 'use strict';
      2 
      3 import {forwardToDedicatedWorker, tryToCreateLock} from './bfcache-test-helpers.js';
      4 
      5 export const createSAH = forwardToDedicatedWorker('createSAH');
      6 export const releaseSAH = forwardToDedicatedWorker('releaseSAH');
      7 export const createAndReleaseSAH =
      8    forwardToDedicatedWorker('createAndReleaseSAH');
      9 
     10 let openWFS;
     11 
     12 export async function createWFS(mode, fileName) {
     13  if (openWFS) {
     14    throw new Error('Already have an open writable.');
     15  }
     16  openWFS = await tryToCreateLock(
     17      fileName, fileHandle => fileHandle.createWritable({mode}));
     18  return openWFS !== undefined;
     19 }
     20 
     21 export async function releaseWFS() {
     22  if (!openWFS) {
     23    throw new Error('No open writable.');
     24  }
     25  await openWFS.close();
     26  openWFS = undefined;
     27 }
     28 
     29 export async function createAndReleaseWFS(mode, fileName) {
     30  const wfsLock = await tryToCreateLock(
     31      fileName, fileHandle => fileHandle.createWritable({mode}));
     32  await wfsLock?.close();
     33  return wfsLock !== undefined;
     34 }