From 8450fc3285e13ee3e0cbe5392afbbd04c32bd64e Mon Sep 17 00:00:00 2001 From: Dmitriy Vasyura Date: Thu, 4 Dec 2025 11:21:56 -0800 Subject: [PATCH] Ignore errors and UI interactions in fetch tool --- .../electron-main/webPageLoader.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/vs/platform/webContentExtractor/electron-main/webPageLoader.ts b/src/vs/platform/webContentExtractor/electron-main/webPageLoader.ts index 229fe2502ad..c91f67fd44a 100644 --- a/src/vs/platform/webContentExtractor/electron-main/webPageLoader.ts +++ b/src/vs/platform/webContentExtractor/electron-main/webPageLoader.ts @@ -72,6 +72,13 @@ export class WebPageLoader extends Disposable { .once('did-fail-load', this.onFailLoad.bind(this)) .once('will-navigate', this.onRedirect.bind(this)) .once('will-redirect', this.onRedirect.bind(this)); + + // Disable any UI interactions that could interfere with content loading. + this._window.webContents + .on('login', (event) => event.preventDefault()) + .on('select-client-certificate', (event) => event.preventDefault()) + .on('certificate-error', (event) => event.preventDefault()); + } private trace(message: string) { @@ -164,7 +171,12 @@ export class WebPageLoader extends Disposable { } this.trace(`Received 'did-fail-load' event, code: ${statusCode}, error: '${error}'`); - void this._queue.queue(() => this.extractContent({ status: 'error', statusCode, error })); + if (statusCode === -3) { + this.trace(`Ignoring ERR_ABORTED (-3) as it may be caused by CSP or other measures`); + void this._queue.queue(() => this.extractContent()); + } else { + void this._queue.queue(() => this.extractContent({ status: 'error', statusCode, error })); + } } /**