src/vs/workbench/api/common/extHostUrls.ts/ExtHostUrls/registerUriHandler
class ExtHostUrls:	registerUriHandler(extensionId: ExtensionIdentifier, handler: vscode.UriHandler): vscode.Disposable {
		if (this.handles.has(ExtensionIdentifier.toKey(extensionId))) {
			throw new Error(`Protocol handler already registered for extension ${extensionId}`);
		}

		const handle = ExtHostUrls.HandlePool++;
		this.handles.add(ExtensionIdentifier.toKey(extensionId));
		this.handlers.set(handle, handler);
		this._proxy.$registerUriHandler(handle, extensionId);

		return toDisposable(() => {
			this.handles.delete(ExtensionIdentifier.toKey(extensionId));
			this.handlers.delete(handle);
			this._proxy.$unregisterUriHandler(handle);
		});
	}