Merge pull request #305 from VishwasShashidhar/ELECTRON-279

Electron 279: add disable gpu switches
This commit is contained in:
Vikas Shashidhar 2018-02-20 09:52:01 +05:30 committed by GitHub
commit 8813e19240
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 13 deletions

View File

@ -16,6 +16,7 @@
},
"customFlags": {
"authServerWhitelist": "",
"authNegotiateDelegateWhitelist": ""
"authNegotiateDelegateWhitelist": "",
"disableGpu": false
}
}
}

View File

@ -22,6 +22,10 @@ const { deleteIndexFolder } = require('./search/search.js');
require('electron-dl')();
// ELECTRON-261: On Windows, due to gpu issues, we need to disable gpu
// to ensure screen sharing works effectively with multiple monitors
// https://github.com/electron/electron/issues/4380
//setting the env path child_process issue https://github.com/electron/electron/issues/7688
shellPath()
.then((path) => {
@ -109,29 +113,37 @@ if (isMac) {
* Sets chrome authentication flags in electron
*/
function setChromeFlags() {
log.send(logLevels.INFO, 'checking if we need to set custom chrome flags!');
// Read the config parameters synchronously
let config = readConfigFileSync();
// If we cannot find any config, just skip setting any flags
if (config && config !== null && config.customFlags) {
log.send(logLevels.INFO, 'Chrome flags config found!');
// If we cannot find the authServerWhitelist config, move on
if (config.customFlags.authServerWhitelist && config.customFlags.authServerWhitelist !== "") {
log.send(logLevels.INFO, 'Setting auth server whitelist flag');
app.commandLine.appendSwitch('auth-server-whitelist', config.customFlags.authServerWhitelist);
}
// If we cannot find the authNegotiateDelegateWhitelist config, move on
if (config.customFlags.authNegotiateDelegateWhitelist && config.customFlags.authNegotiateDelegateWhitelist !== "") {
log.send(logLevels.INFO, 'Setting auth negotiate delegate whitelist flag');
app.commandLine.appendSwitch('auth-negotiate-delegate-whitelist', config.customFlags.authNegotiateDelegateWhitelist);
}
// ELECTRON-261: Windows 10 Screensharing issues. We set chrome flags
// to disable gpu which fixes the black screen issue observed on
// multiple monitors
if (config.customFlags.disableGpu) {
log.send(logLevels.INFO, 'Setting disable gpu, gpu compositing and d3d11 flags to true');
app.commandLine.appendSwitch("disable-gpu", true);
app.commandLine.appendSwitch("disable-gpu-compositing", true);
app.commandLine.appendSwitch("disable-d3d11", true);
}
}
}
@ -212,7 +224,7 @@ function setupThenOpenMainWindow() {
let hasInstallFlag = getCmdLineArg(process.argv, '--install', true);
let perUserInstall = getCmdLineArg(process.argv, '--peruser', true);
let customDataArg = getCmdLineArg(process.argv, '--userDataPath=', false);
if (customDataArg && customDataArg.split('=').length > 1) {
let customDataFolder = customDataArg.split('=')[1];
app.setPath('userData', customDataFolder);
@ -343,4 +355,4 @@ function handleProtocolAction(uri) {
// app is already open, so, just trigger the protocol action method
protocolHandler.processProtocolAction(uri);
}
}
}