Added Subresource Integrity checks from Tachyon

64e23d4fca
This commit is contained in:
the-djmaze 2026-11-01 22:10:41 +01:00
parent 30469ae2dc
commit 124a9c687e
7 changed files with 81 additions and 9 deletions

View file

@ -16,12 +16,14 @@ const
toggle(div);
},
loadScript = src => src ? new Promise((resolve, reject) => {
loadScript = (src, integrity) => src ? new Promise((resolve, reject) => {
const script = doc.createElement('script');
script.onload = () => resolve();
script.onerror = () => reject('Failed loading ' + src);
script.src = src;
// script.async = true;
// script.crossorigin = ''; // same as 'anonymous'
if (integrity) { script.integrity = integrity; }
doc.head.append(script);
}) : Promise.reject('src is empty');
@ -146,8 +148,8 @@ if (!navigator.cookieEnabled) {
RL_APP_DATA = appData;
const url = appData.StaticLibsJs,
cb = () => rl.app.bootstart();
loadScript(url)
.then(() => loadScript(url.replace('/libs.', `/${admin?'admin':'app'}.`)))
loadScript(url, appData.StaticLibsJsSri)
.then(() => loadScript(url.replace('/libs.', `/${admin?'admin':'app'}.`), appData.StaticAppJsSri))
.then(() => appData.PluginsLink ? loadScript(qUri(appData.PluginsLink)) : Promise.resolve())
.then(() => rl.app
? cb()