src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts/ExtensionsWorkbenchService/queryGallery
class ExtensionsWorkbenchService:	async queryGallery(arg1: any, arg2?: any): Promise<IPager<IExtension>> {
		const options: IQueryOptions = CancellationToken.isCancellationToken(arg1) ? {} : arg1;
		const token: CancellationToken = CancellationToken.isCancellationToken(arg1) ? arg1 : arg2;
		options.text = options.text ? this.resolveQueryText(options.text) : options.text;
		options.includePreRelease = isUndefined(options.includePreRelease) ? this.preferPreReleases : options.includePreRelease;

		const extensionsControlManifest = await this.extensionManagementService.getExtensionsControlManifest();
		try {
			const pager = await this.galleryService.query(options, token);
			this.syncInstalledExtensionsWithGallery(pager.firstPage);
			return {
				firstPage: pager.firstPage.map(gallery => this.fromGallery(gallery, extensionsControlManifest)),
				total: pager.total,
				pageSize: pager.pageSize,
				getPage: async (pageIndex, token) => {
					const page = await pager.getPage(pageIndex, token);
					this.syncInstalledExtensionsWithGallery(page);
					return page.map(gallery => this.fromGallery(gallery, extensionsControlManifest));
				}
			};
		} catch (error) {
			if (/No extension gallery service configured/.test(error.message)) {
				return Promise.resolve(singlePagePager([]));
			}
			throw error;
		}
	}