Skip to content

Commit a8a64a8

Browse files
committed
1 parent d511693 commit a8a64a8

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

src/vs/workbench/services/extensionManagement/common/webExtensionsScannerService.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
4848

4949
private readonly systemExtensionsPromise: Promise<IScannedExtension[]>;
5050
private readonly staticExtensions: IScannedExtension[];
51-
private readonly extensionsResource: URI;
51+
private readonly extensionsResource: URI | undefined;
5252
private readonly userExtensionsResourceLimiter: Queue<IUserExtension[]>;
5353

5454
constructor(
@@ -58,7 +58,7 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
5858
@IRequestService private readonly requestService: IRequestService,
5959
@ILogService private readonly logService: ILogService,
6060
) {
61-
this.extensionsResource = joinPath(environmentService.userRoamingDataHome, 'extensions.json');
61+
this.extensionsResource = isWeb ? joinPath(environmentService.userRoamingDataHome, 'extensions.json') : undefined;
6262
this.userExtensionsResourceLimiter = new Queue<IUserExtension[]>();
6363
this.systemExtensionsPromise = isWeb ? this.builtinExtensionsScannerService.scanBuiltinExtensions() : Promise.resolve([]);
6464
const staticExtensions = environmentService.options && Array.isArray(environmentService.options.staticExtensions) ? environmentService.options.staticExtensions : [];
@@ -155,10 +155,13 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
155155
return null;
156156
}
157157

158-
private readUserExtensions(): Promise<IUserExtension[]> {
158+
private async readUserExtensions(): Promise<IUserExtension[]> {
159+
if (!this.extensionsResource) {
160+
return [];
161+
}
159162
return this.userExtensionsResourceLimiter.queue(async () => {
160163
try {
161-
const content = await this.fileService.readFile(this.extensionsResource);
164+
const content = await this.fileService.readFile(this.extensionsResource!);
162165
const storedUserExtensions: IStoredUserExtension[] = JSON.parse(content.value.toString());
163166
return storedUserExtensions.map(e => ({
164167
identifier: e.identifier,
@@ -174,6 +177,9 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
174177
}
175178

176179
private writeUserExtensions(userExtensions: IUserExtension[]): Promise<IUserExtension[]> {
180+
if (!this.extensionsResource) {
181+
throw new Error('unsupported');
182+
}
177183
return this.userExtensionsResourceLimiter.queue(async () => {
178184
const storedUserExtensions: IStoredUserExtension[] = userExtensions.map(e => ({
179185
identifier: e.identifier,
@@ -183,7 +189,7 @@ export class WebExtensionsScannerService implements IWebExtensionsScannerService
183189
changelogUri: e.changelogUri?.toJSON(),
184190
packageNLSUri: e.packageNLSUri?.toJSON(),
185191
}));
186-
await this.fileService.writeFile(this.extensionsResource, VSBuffer.fromString(JSON.stringify(storedUserExtensions)));
192+
await this.fileService.writeFile(this.extensionsResource!, VSBuffer.fromString(JSON.stringify(storedUserExtensions)));
187193
return userExtensions;
188194
});
189195
}

0 commit comments

Comments
 (0)