const { app, BrowserWindow, session } = require('electron'); const path = require('node:path'); app.setPath('userData', path.join(__dirname, 'user-data-dir')); // Grab the command to run from process.argv const command = process.argv[2]; app.whenReady().then(async () => { const bw = new BrowserWindow({ show: true }); await bw.loadURL('https://compression-dictionary-transport-threejs-demo.glitch.me/demo.html?r=151'); // Wait a second for glitch to load, it sometimes takes a while // if the glitch app is booting up (did-finish-load will fire too soon) await new Promise(resolve => setTimeout(resolve, 1000)); try { let result; const isolationKey = { frameOrigin: 'https://compression-dictionary-transport-threejs-demo.glitch.me', topFrameSite: 'https://compression-dictionary-transport-threejs-demo.glitch.me' }; if (command === 'getSharedDictionaryInfo') { result = await session.defaultSession.getSharedDictionaryInfo(isolationKey); } else if (command === 'getSharedDictionaryUsageInfo') { result = await session.defaultSession.getSharedDictionaryUsageInfo(); } else if (command === 'clearSharedDictionaryCache') { await session.defaultSession.clearSharedDictionaryCache(); result = await session.defaultSession.getSharedDictionaryUsageInfo(); } else if (command === 'clearSharedDictionaryCacheForIsolationKey') { await session.defaultSession.clearSharedDictionaryCacheForIsolationKey(isolationKey); result = await session.defaultSession.getSharedDictionaryUsageInfo(); } console.log(JSON.stringify(result)); } catch (e) { console.log('error', e); } finally { app.quit(); } });