Add delegate recursion and reinscription UI

This commit is contained in:
recovery committed 2026-10-05 03:57:01 +00:00
1 parent 9f27897967
commit 5d1a1ae866
10 files changed
+327 -31

No files matched your search

+1
View File
@@ -0,0 +1 @@
<!doctype html><meta charset="utf-8"><meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'nonce-local-ord-preview'; worker-src blob:; style-src 'unsafe-inline'; connect-src 'none'; img-src data:; form-action 'none'; base-uri 'none'"><div id="markup"></div><pre id="recursive-output"></pre><script nonce="local-ord-preview" src="/recursive-preview.js"></script>
+16
View File
@@ -0,0 +1,16 @@
// Trusted renderer only. Inscription JavaScript runs exclusively in the worker.
addEventListener('message', function start(event) {
if (event.source !== parent || event.data?.type !== 'local-ord' || !event.ports[0]) return;
removeEventListener('message', start);
const port = event.ports[0];
document.getElementById('markup').innerHTML = event.data.markup;
const url = URL.createObjectURL(new Blob([event.data.worker], { type: 'text/javascript' }));
const worker = new Worker(url);
worker.onmessage = ({ data }) => {
if (data.type === 'render') document.getElementById('recursive-output').textContent = String(data.text).slice(0, 65536);
else if (data.type === 'fetch') port.postMessage(data);
};
worker.onerror = () => { document.getElementById('recursive-output').textContent = 'Recursive script failed.'; };
port.onmessage = ({ data }) => worker.postMessage(data);
addEventListener('pagehide', () => { worker.terminate(); port.close(); URL.revokeObjectURL(url); }, { once: true });
});