From 1cfe1ecf3f140f6269a4776e803c7d0b6f69abae Mon Sep 17 00:00:00 2001 From: meganrogge Date: Tue, 19 Sep 2023 08:52:37 -0700 Subject: [PATCH 1/4] fix #193475 --- src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts | 2 ++ src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts | 3 +++ src/vs/workbench/contrib/tasks/common/taskService.ts | 1 + 3 files changed, 6 insertions(+) diff --git a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts index a252d8e4814..81cb217e4b6 100644 --- a/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts +++ b/src/vs/workbench/contrib/tasks/browser/abstractTaskService.ts @@ -231,6 +231,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer public onDidChangeTaskSystemInfo: Event = this._onDidChangeTaskSystemInfo.event; private _onDidReconnectToTasks: Emitter = new Emitter(); public onDidReconnectToTasks: Event = this._onDidReconnectToTasks.event; + public get isReconnected(): boolean { return this._tasksReconnected; } constructor( @IConfigurationService private readonly _configurationService: IConfigurationService, @@ -349,6 +350,7 @@ export abstract class AbstractTaskService extends Disposable implements ITaskSer this._attemptTaskReconnection(); } else { this._tasksReconnected = true; + this._onDidReconnectToTasks.fire(); } }); } diff --git a/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts b/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts index 55ec14e22a0..bf078c50a7c 100644 --- a/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts +++ b/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts @@ -33,6 +33,9 @@ export class RunAutomaticTasks extends Disposable implements IWorkbenchContribut this._tryRunTasks(); } })); + if (this._taskService.isReconnected) { + this._tryRunTasks(); + } this._register(this._workspaceTrustManagementService.onDidChangeTrust(async trusted => { if (trusted) { await this._tryRunTasks(); diff --git a/src/vs/workbench/contrib/tasks/common/taskService.ts b/src/vs/workbench/contrib/tasks/common/taskService.ts index c96cba1125d..5799f23fd49 100644 --- a/src/vs/workbench/contrib/tasks/common/taskService.ts +++ b/src/vs/workbench/contrib/tasks/common/taskService.ts @@ -64,6 +64,7 @@ export interface IWorkspaceFolderTaskResult extends IWorkspaceTaskResult { export interface ITaskService { readonly _serviceBrand: undefined; onDidStateChange: Event; + isReconnected: boolean; onDidReconnectToTasks: Event; supportsMultipleTaskExecutions: boolean; From 52b0ec4478aa23c79442f2b77c019023050bb1bc Mon Sep 17 00:00:00 2001 From: meganrogge Date: Tue, 19 Sep 2023 08:54:55 -0700 Subject: [PATCH 2/4] rm redundant check --- .../workbench/contrib/tasks/browser/runAutomaticTasks.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts b/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts index bf078c50a7c..88c773aa7ee 100644 --- a/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts +++ b/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts @@ -28,11 +28,7 @@ export class RunAutomaticTasks extends Disposable implements IWorkbenchContribut @IWorkspaceTrustManagementService private readonly _workspaceTrustManagementService: IWorkspaceTrustManagementService, @ILogService private readonly _logService: ILogService) { super(); - this._taskService.onDidReconnectToTasks((() => { - if (this._workspaceTrustManagementService.isWorkspaceTrusted()) { - this._tryRunTasks(); - } - })); + this._taskService.onDidReconnectToTasks((() => this._tryRunTasks())); if (this._taskService.isReconnected) { this._tryRunTasks(); } @@ -44,6 +40,9 @@ export class RunAutomaticTasks extends Disposable implements IWorkbenchContribut } private async _tryRunTasks() { + if (!this._workspaceTrustManagementService.isWorkspaceTrusted()) { + return; + } if (this._hasRunTasks || this._configurationService.getValue(ALLOW_AUTOMATIC_TASKS) === 'off') { return; } From 33bbfac7ec646d0cceccf07ee291ae19ed999d95 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Tue, 19 Sep 2023 12:28:54 -0700 Subject: [PATCH 3/4] better fix --- src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts b/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts index 88c773aa7ee..6197b74a44d 100644 --- a/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts +++ b/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts @@ -28,9 +28,10 @@ export class RunAutomaticTasks extends Disposable implements IWorkbenchContribut @IWorkspaceTrustManagementService private readonly _workspaceTrustManagementService: IWorkspaceTrustManagementService, @ILogService private readonly _logService: ILogService) { super(); - this._taskService.onDidReconnectToTasks((() => this._tryRunTasks())); if (this._taskService.isReconnected) { this._tryRunTasks(); + } else { + this._register(Event.once(this._taskService.onDidReconnectToTasks)(() => this._tryRunTasks())); } this._register(this._workspaceTrustManagementService.onDidChangeTrust(async trusted => { if (trusted) { From 5c0aac4bc44e3dd04abcc375d8837bc572ffe34e Mon Sep 17 00:00:00 2001 From: meganrogge Date: Tue, 19 Sep 2023 12:30:44 -0700 Subject: [PATCH 4/4] await --- .../workbench/contrib/tasks/browser/runAutomaticTasks.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts b/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts index 6197b74a44d..a4b4239b43c 100644 --- a/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts +++ b/src/vs/workbench/contrib/tasks/browser/runAutomaticTasks.ts @@ -31,13 +31,9 @@ export class RunAutomaticTasks extends Disposable implements IWorkbenchContribut if (this._taskService.isReconnected) { this._tryRunTasks(); } else { - this._register(Event.once(this._taskService.onDidReconnectToTasks)(() => this._tryRunTasks())); + this._register(Event.once(this._taskService.onDidReconnectToTasks)(async () => await this._tryRunTasks())); } - this._register(this._workspaceTrustManagementService.onDidChangeTrust(async trusted => { - if (trusted) { - await this._tryRunTasks(); - } - })); + this._register(this._workspaceTrustManagementService.onDidChangeTrust(async () => await this._tryRunTasks())); } private async _tryRunTasks() {