Merge branch 'main' of github.com:GooseMod/OpenAsar

main
Oj 2 years ago
commit 9110fe7bba

5
src/bootstrap.js vendored

@ -128,7 +128,6 @@ const startUpdate = () => {
});
};
const hasArgvFlag = (flag) => (process.argv || []).slice(1).includes(flag);
module.exports = () => {
// Paths logging
@ -140,7 +139,7 @@ getModuleDataPath: ${paths.getModuleDataPath()}
getInstallPath: ${paths.getInstallPath()}`);
const instanceLock = app.requestSingleInstanceLock();
const allowMultiInstance = hasArgvFlag('--multi-instance') || oaConfig.multiInstance === true; // argv flag or config
const allowMultiInstance = argv.hasFlag('--multi-instance') || oaConfig.multiInstance === true; // argv flag or config
console.log(instanceLock, allowMultiInstance);
@ -154,4 +153,4 @@ getInstallPath: ${paths.getInstallPath()}`);
} else {
app.once('ready', startUpdate);
}
};
};

@ -141,12 +141,4 @@
barFill.style.visibility = '';
}
});
document.querySelector('#debug').textContent = DiscordSplash.getDebugInfo();
DiscordSplash.getCSS((css) => {
const cssInject = document.createElement('style');
cssInject.appendChild(document.createTextNode(css));
document.body.appendChild(cssInject);
});
</script>

@ -17,15 +17,6 @@ contextBridge.exposeInMainWorld('DiscordSplash', {
openUrl: saferShellOpenExternal,
quitDiscord: () => ipcRenderer.send('DISCORD_SPLASH_SCREEN_QUIT'),
getDebugInfo: () => {
if (oaConfig.splashText === false) return '';
const buildInfo = require('../utils/buildInfo');
return `${buildInfo.releaseChannel} ${buildInfo.version}
OpenAsar ${urlParams.get('oaVersion')}`;
},
getCSS: callback => oaConfig.themeSync !== false ? ipcRenderer.on('DISCORD_GET_CSS', (_, value) => {
callback(value);
}) : {}

@ -456,6 +456,15 @@ function launchSplashWindow(startMinimized) {
_ipcMain.default.on('SPLASH_SCREEN_READY', () => {
log('Splash', 'Window declared ready, showing and starting update process');
if (oaConfig.themeSync !== false) try { // Inject themesync CSS
splashWindow.webContents.insertCSS(JSON.parse(_fs.default.readFileSync(_path.default.join(paths.getUserData(), 'userDataCache.json'), 'utf8')).openasarSplashCSS);
} catch (e) { }
if (oaConfig.splashText !== false) try {
const buildInfo = require('../utils/buildInfo.js');
splashWindow.webContents.executeJavaScript(`debug.textContent = '${buildInfo.releaseChannel} ${buildInfo.version}\\nOpenAsar ${oaVersion}'`);
} catch (e) { }
if (splashWindow && !startMinimized) {
splashWindow.show();
}
@ -471,13 +480,7 @@ function launchSplashWindow(startMinimized) {
pathname: _path.default.join(__dirname, 'index.html')
});
try {
webContentsSend(splashWindow, 'GET_CSS', JSON.parse(_fs.default.readFileSync(_path.default.join(paths.getUserData(), 'userDataCache.json'), 'utf8')).openasarSplashCSS);
} catch (e) {
log('Splash', 'Failed to inject splash CSS');
}
splashWindow.loadURL(splashUrl + '?oaVersion=' + global.oaVersion + '&oaConfig=' + JSON.stringify(oaConfig));
splashWindow.loadURL(splashUrl);
log('Splash', `Loading window (with url ${splashUrl})`);
}

@ -34,7 +34,7 @@ module.exports = class Backoff { // Internal library / utility for a class to re
try {
callback(); // Run callback
} finally {
this_timeoutId = null; // Stop tracking timeout internally as it's been executed
this._timeoutId = null; // Stop tracking timeout internally as it's been executed
}
}, this.current);

@ -1,17 +1,7 @@
const { shell } = require('electron');
const allowedProtocols = [ 'https:', 'http:' ];
exports.saferShellOpenExternal = (url) => {
let parsed;
try {
parsed = new URL(url);
} catch (_e) { return Promise.reject(); }
if (!allowedProtocols.includes(parsed.protocol?.toLowerCase())) return Promise.reject(); // Only allow some protocols
return shell.openExternal(url);
};
const allowedProtocols = [ 'https', 'http' ]; // Only allow some protocols
exports.saferShellOpenExternal = (url) => allowedProtocols.includes(url.split(':')[0].toLowerCase()) ? shell.openExternal(url) : Promise.reject();
exports.checkUrlOriginMatches = (url1, url2) => {
let parse1, parse2;

Loading…
Cancel
Save