提交 a214ace0 编写于 作者: J João Moreno

mitigate #109728

上级 30e0c578
......@@ -18,7 +18,7 @@ import { INotificationService, Severity } from 'vs/platform/notification/common/
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
import { ReleaseNotesManager } from './releaseNotesEditor';
import { isWindows } from 'vs/base/common/platform';
import { isMacintosh, isNative, isWindows } from 'vs/base/common/platform';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { RawContextKey, IContextKey, IContextKeyService, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
......@@ -208,6 +208,7 @@ export class UpdateContribution extends Disposable implements IWorkbenchContribu
@IContextKeyService private readonly contextKeyService: IContextKeyService,
@IProductService private readonly productService: IProductService,
@IWorkbenchEnvironmentService private readonly environmentService: IWorkbenchEnvironmentService,
@IOpenerService private readonly openerService: IOpenerService
) {
super();
this.state = updateService.state;
......@@ -495,7 +496,35 @@ export class UpdateContribution extends Disposable implements IWorkbenchContribu
when: CONTEXT_UPDATE_STATE.isEqualTo(StateType.Updating)
});
CommandsRegistry.registerCommand('update.restart', () => this.updateService.quitAndInstall());
CommandsRegistry.registerCommand('update.restart', async () => {
if (isNative && isMacintosh && typeof require !== 'undefined' && typeof require.__$__nodeRequire === 'function') {
const os = require.__$__nodeRequire('os') as { release(): string; };
const release = os.release();
if (parseInt(release) >= 20) { // Big Sur
const answer = await this.dialogService.show(
Severity.Warning,
nls.localize('good luck', "'Restart to Update' is broken on macOS Big Sur. Click 'Quit to Update' to quit {0} and update it. Then, relaunch it from Finder.", this.productService.nameShort),
[
nls.localize('quit', "Quit to Update"),
nls.localize('learn more', "Learn More"),
nls.localize('cancel', "Cancel")
],
{ cancelId: 2 }
);
if (answer.choice === 2) {
return;
} else if (answer.choice === 1) {
await this.openerService.open(URI.parse('https://github.com/microsoft/vscode/issues/109728'));
return;
}
}
}
this.updateService.quitAndInstall();
});
MenuRegistry.appendMenuItem(MenuId.GlobalActivity, {
group: '6_update',
command: {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册