src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.ts/WebExtensionsScannerService/updateCustomBuiltinExtensionsCache
class WebExtensionsScannerService:	private async updateCustomBuiltinExtensionsCache(): Promise<IWebExtension[]> {
		if (!this._updateCustomBuiltinExtensionsCachePromise) {
			this._updateCustomBuiltinExtensionsCachePromise = (async () => {
				// Clear Cache
				await this.writeCustomBuiltinExtensionsCache(() => []);

				const { extensions } = await this.readCustomBuiltinExtensionsInfoFromEnv();

				if (!extensions.length) {
					return [];
				}

				const galleryExtensionsMap = await this.getExtensionsWithDependenciesAndPackedExtensions(extensions);

				const missingExtensions = extensions.filter(({ id }) => !galleryExtensionsMap.has(id.toLowerCase()));
				if (missingExtensions.length) {
					this.logService.info('Skipping the additional builtin extensions because their compatible versions are not foud.', missingExtensions);
				}

				const webExtensions: IWebExtension[] = [];
				await Promise.all([...galleryExtensionsMap.values()].map(async gallery => {
					try {
						webExtensions.push(await this.toWebExtensionFromGallery(gallery, { isPreReleaseVersion: gallery.properties.isPreReleaseVersion, preRelease: gallery.properties.isPreReleaseVersion, isBuiltin: true }));
					} catch (error) {
						this.logService.info(`Ignoring additional builtin extension ${gallery.identifier.id} because there is an error while converting it into web extension`, getErrorMessage(error));
					}
				}));

				await this.writeCustomBuiltinExtensionsCache(() => webExtensions);
				return webExtensions;
			})();
		}
		return this._updateCustomBuiltinExtensionsCachePromise;
	}