src/vs/workbench/services/extensions/common/extensionManifestPropertiesService.ts/ExtensionManifestPropertiesService/getExtensionKind
class ExtensionManifestPropertiesService:	getExtensionKind(manifest: IExtensionManifest): ExtensionKind[] {
		// check in config
		let result = this.getConfiguredExtensionKind(manifest);
		if (typeof result !== 'undefined') {
			return this.toArray(result);
		}

		// check product.json
		result = this.getProductExtensionKind(manifest);
		if (typeof result !== 'undefined') {
			return result;
		}

		const deducedExtensionKind = this.deduceExtensionKind(manifest);

		// check the manifest itself
		result = manifest.extensionKind;
		if (typeof result !== 'undefined') {
			result = this.toArray(result);
			// Override extension declared extensionKind by adding web kind if the extension can run as web extension
			if (deducedExtensionKind.includes('web') && !result.includes('web')) {
				result.push('web');
			}
			return result;
		}

		return deducedExtensionKind;
	}