@@ -857,9 +857,12 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
857
857
// Check for updates
858
858
this . eventuallyCheckForUpdates ( true ) ;
859
859
860
- // Always auto update builtin extensions in web
861
- if ( isWeb && ! this . isAutoUpdateEnabled ( ) ) {
862
- this . autoUpdateBuiltinExtensions ( ) ;
860
+ if ( isWeb ) {
861
+ this . syncPinnedBuiltinExtensions ( ) ;
862
+ // Always auto update builtin extensions in web
863
+ if ( ! this . isAutoUpdateEnabled ( ) ) {
864
+ this . autoUpdateBuiltinExtensions ( ) ;
865
+ }
863
866
}
864
867
}
865
868
@@ -1333,7 +1336,7 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
1333
1336
// Skip if check updates only for builtin extensions and current extension is not builtin.
1334
1337
continue ;
1335
1338
}
1336
- if ( installed . isBuiltin && ( installed . type === ExtensionType . System || ! installed . local ?. identifier . uuid ) ) {
1339
+ if ( installed . isBuiltin && ! installed . pinned && ( installed . type === ExtensionType . System || ! installed . local ?. identifier . uuid ) ) {
1337
1340
// Skip checking updates for a builtin extension if it is a system extension or if it does not has Marketplace identifier
1338
1341
continue ;
1339
1342
}
@@ -1412,6 +1415,21 @@ export class ExtensionsWorkbenchService extends Disposable implements IExtension
1412
1415
await Promises . settled ( toUpdate . map ( e => this . install ( e , e . local ?. preRelease ? { installPreReleaseVersion : true } : undefined ) ) ) ;
1413
1416
}
1414
1417
1418
+ private async syncPinnedBuiltinExtensions ( ) : Promise < void > {
1419
+ const infos : IExtensionInfo [ ] = [ ] ;
1420
+ for ( const installed of this . local ) {
1421
+ if ( installed . isBuiltin && installed . pinned && installed . local ?. identifier . uuid ) {
1422
+ infos . push ( { ...installed . identifier , version : installed . version } ) ;
1423
+ }
1424
+ }
1425
+ if ( infos . length ) {
1426
+ const galleryExtensions = await this . galleryService . getExtensions ( infos , CancellationToken . None ) ;
1427
+ if ( galleryExtensions . length ) {
1428
+ await this . syncInstalledExtensionsWithGallery ( galleryExtensions ) ;
1429
+ }
1430
+ }
1431
+ }
1432
+
1415
1433
private autoUpdateExtensions ( ) : Promise < any > {
1416
1434
if ( ! this . isAutoUpdateEnabled ( ) ) {
1417
1435
return Promise . resolve ( ) ;
0 commit comments