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 }