Add custom window preferences

This commit is contained in:
Samuel Elliott 2018-07-04 19:40:25 +01:00
parent 799dca7e1b
commit f8f519e882
No known key found for this signature in database
GPG Key ID: 8420C7CDE43DC4D6
3 changed files with 22 additions and 5 deletions

View File

@ -11,6 +11,7 @@
import path from 'path';
import sass from 'node-sass';
import { BrowserWindow, dialog } from 'electron';
import deepmerge from 'deepmerge';
import { FileUtils, BDIpc, Config, WindowUtils, CSSEditor, Database } from './modules';
@ -54,16 +55,32 @@ const globals = {
class PatchedBrowserWindow extends BrowserWindow {
constructor(originalOptions) {
const options = Object.assign({}, originalOptions);
const userOptions = PatchedBrowserWindow.userWindowPreferences;
const options = deepmerge(originalOptions, userOptions);
options.webPreferences = Object.assign({}, options.webPreferences);
// Make sure Node integration is enabled
const originalPreloadScript = options.webPreferences.preload;
options.webPreferences.preload = sparkplug;
super(options);
this.__bd_preload = [originalPreloadScript];
this.__bd_preload = [originalOptions.webPreferences.preload];
if (userOptions.webPreferences && userOptions.webPreferences.preload) {
this.__bd_preload.push(path.resolve(_dataPath, userOptions.webPreferences.preload));
}
}
static get userWindowPreferences() {
try {
const userWindowPreferences = require(path.join(_dataPath, 'window'));
if (typeof userWindowPreferences === 'object') return userWindowPreferences;
} catch (err) {
console.log('[BetterDiscord] Error getting window preferences:', err);
}
return {};
}
}

3
package-lock.json generated
View File

@ -2964,8 +2964,7 @@
"deepmerge": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.1.1.tgz",
"integrity": "sha512-urQxA1smbLZ2cBbXbaYObM1dJ82aJ2H57A1C/Kklfh/ZN1bgH4G/n5KWhdNfOK11W98gqZfyYj7W4frJJRwA2w==",
"dev": true
"integrity": "sha512-urQxA1smbLZ2cBbXbaYObM1dJ82aJ2H57A1C/Kklfh/ZN1bgH4G/n5KWhdNfOK11W98gqZfyYj7W4frJJRwA2w=="
},
"default-compare": {
"version": "1.0.0",

View File

@ -16,6 +16,7 @@
},
"private": false,
"dependencies": {
"deepmerge": "^2.1.1",
"nedb": "^1.8.0",
"node-sass": "^4.7.2"
},