Skip to content

Commit 2fdf216

Browse files
committed
reset when all profiles are removed
1 parent 94459e7 commit 2fdf216

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/vs/code/electron-browser/sharedProcess/contrib/extensionsCleaner.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export class ExtensionsCleaner extends Disposable {
4444
class ProfileExtensionsCleaner extends Disposable {
4545

4646
private profileExtensionsLocations = new Map<string, URI[]>;
47-
private readonly initPromise: Promise<boolean>;
47+
private initPromise: Promise<boolean>;
4848

4949
constructor(
5050
@INativeServerExtensionManagementService private readonly extensionManagementService: INativeServerExtensionManagementService,
@@ -62,6 +62,7 @@ class ProfileExtensionsCleaner extends Disposable {
6262
}
6363

6464
private async initialize(): Promise<boolean> {
65+
this.profileExtensionsLocations.clear();
6566
if (this.userDataProfilesService.profiles.length === 1) {
6667
return true;
6768
}
@@ -80,12 +81,15 @@ class ProfileExtensionsCleaner extends Disposable {
8081
}
8182
}
8283

83-
private async onDidChangeProfiles({ added, removed }: DidChangeProfilesEvent): Promise<void> {
84+
private async onDidChangeProfiles({ added, removed, all }: DidChangeProfilesEvent): Promise<void> {
8485
if (!(await this.initPromise)) {
8586
return;
8687
}
8788
await Promise.all(added.map(profile => profile.extensionsResource ? this.populateExtensionsFromProfile(profile.extensionsResource) : Promise.resolve()));
8889
await Promise.all(removed.map(profile => profile.extensionsResource ? this.removeExtensionsFromProfile(profile.extensionsResource) : Promise.resolve()));
90+
if (all.length === 1) {
91+
this.initPromise = this.initialize();
92+
}
8993
}
9094

9195
private async onDidInstallExtensions(installedExtensions: readonly ServerInstallExtensionResult[]): Promise<void> {

0 commit comments

Comments
 (0)