src/vs/platform/userDataSync/common/extensionsSync.ts/ExtensionsSynchroniser/hasRemoteChanged
class ExtensionsSynchroniser:	protected async hasRemoteChanged(lastSyncUserData: ILastSyncUserData): Promise<boolean> {
		const lastSyncExtensions: ISyncExtension[] | null = lastSyncUserData.syncData ? await parseAndMigrateExtensions(lastSyncUserData.syncData, this.extensionManagementService) : null;
		const installedExtensions = await this.extensionManagementService.getInstalled(undefined, true);
		const localExtensions = this.getLocalExtensions(installedExtensions);
		const ignoredExtensions = this.ignoredExtensionsManagementService.getIgnoredExtensions(installedExtensions);
		const { remote } = merge(localExtensions, lastSyncExtensions, lastSyncExtensions, lastSyncUserData.skippedExtensions || [], ignoredExtensions);
		return remote !== null;
	}