Microsoft/vscode

errors thrown by openerService.resolveExternalUri not surfaced to MainThreadWindow.$asExternalUri in VS Code Web

Open

#162,770 opened on Oct 5, 2022

View on GitHub
 (4 comments) (0 reactions) (2 assignees)TypeScript (74,848 stars) (10,221 forks)batch import
bughelp wantedopener

Description

  • VS Code Version: 1.72.1 (main)
  • OS Version: N/A
  • Browser: Chrome

Steps to Reproduce:

  1. git clone https://github.com/microsoft/vscode.git
  2. run VS Code Web locally
  3. install any extension that uses asExternalUri (i.e. this one)
  4. run command "Hello World"
  5. Open Browser Console

Expected Should log error thrown 'Could not resolve external URI: ' + resource.toString()

Actual Nothing

Notes I believe this happens because there is no try/catch block here: https://github.com/microsoft/vscode/blob/main/src/vs/workbench/api/browser/mainThreadWindow.ts#L63

When you add a try/catch block there like so:

		try {
			const result = await this.openerService.resolveExternalUri(URI.revive(uriComponents), options);
			return result.resolved;
		} catch (e) {
			console.error('something wrong', e);
		}
		const result = await this.openerService.resolveExternalUri(URI.revive(uriComponents), options);
		return result.resolved;

Then it logs the thrown error

Screenshot

Would you accept a PR to fix this?

Contributor guide