提交 c37e51bc 编写于 作者: B Benjamin Pasero

fix #55864

上级 eabf725b
......@@ -18,21 +18,23 @@ const electron = require('electron');
const remote = electron.remote;
const ipc = electron.ipcRenderer;
Error.stackTraceLimit = 100; // increase number of stack frames (from 10, https://github.com/v8/v8/wiki/Stack-Trace-API)
process.lazyEnv = new Promise(function (resolve) {
const handle = setTimeout(function () {
resolve();
console.warn('renderer did not receive lazyEnv in time');
}, 10000);
ipc.once('vscode:acceptShellEnv', function (event, shellEnv) {
clearTimeout(handle);
assign(process.env, shellEnv);
resolve(process.env);
});
ipc.send('vscode:fetchShellEnv');
});
Error.stackTraceLimit = 100; // increase number of stack frames (from 10, https://github.com/v8/v8/wiki/Stack-Trace-API)
function onError(error, enableDeveloperTools) {
if (enableDeveloperTools) {
remote.getCurrentWebContents().openDevTools();
......@@ -46,8 +48,7 @@ function onError(error, enableDeveloperTools) {
}
function assign(destination, source) {
return Object.keys(source)
.reduce(function (r, key) { r[key] = source[key]; return r; }, destination);
return Object.keys(source).reduce(function (r, key) { r[key] = source[key]; return r; }, destination);
}
function parseURLQueryArgs() {
......@@ -81,6 +82,10 @@ function readFile(file) {
});
}
function writeFile(file, content) {
return new Promise((c, e) => fs.writeFile(file, content, 'utf8', err => err ? e(err) : c()));
}
function showPartsSplash(configuration) {
perf.mark('willShowPartsSplash');
......@@ -144,8 +149,6 @@ function showPartsSplash(configuration) {
perf.mark('didShowPartsSplash');
}
const writeFile = (file, content) => new Promise((c, e) => fs.writeFile(file, content, 'utf8', err => err ? e(err) : c()));
function registerListeners(enableDeveloperTools) {
// Devtools & reload support
......@@ -221,6 +224,14 @@ function main() {
// Correctly inherit the parent's environment
assign(process.env, configuration.userEnv);
// disable pinch zoom & apply zoom level early to avoid glitches
const zoomLevel = configuration.zoomLevel;
webFrame.setVisualZoomLevelLimits(1, 1);
if (typeof zoomLevel === 'number' && zoomLevel !== 0) {
webFrame.setZoomLevel(zoomLevel);
}
// Parts splash
showPartsSplash(configuration);
// Get the nls configuration into the process.env as early as possible.
......@@ -269,13 +280,6 @@ function main() {
const enableDeveloperTools = (process.env['VSCODE_DEV'] || !!configuration.extensionDevelopmentPath) && !configuration.extensionTestsPath;
const unbind = registerListeners(enableDeveloperTools);
// disable pinch zoom & apply zoom level early to avoid glitches
const zoomLevel = configuration.zoomLevel;
webFrame.setVisualZoomLevelLimits(1, 1);
if (typeof zoomLevel === 'number' && zoomLevel !== 0) {
webFrame.setZoomLevel(zoomLevel);
}
// Load the loader and start loading the workbench
const loaderFilename = configuration.appRoot + '/out/vs/loader.js';
const loaderSource = require('fs').readFileSync(loaderFilename);
......@@ -324,7 +328,6 @@ function main() {
});
});
});
}
main();
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册