Skip to content

Commit c915ea1

Browse files
Handle non-JSON keys (microsoft#258592)
Fixes microsoft#258383
1 parent 57fdf7a commit c915ea1

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/vs/workbench/api/browser/mainThreadSecretState.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,9 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
2828
this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostSecretState);
2929

3030
this._register(this.secretStorageService.onDidChangeSecret((e: string) => {
31-
try {
32-
const { extensionId, key } = this.parseKey(e);
33-
if (extensionId && key) {
34-
this._proxy.$onDidChangePassword({ extensionId, key });
35-
}
36-
} catch (e) {
37-
// Core can use non-JSON values as keys, so we may not be able to parse them.
31+
const parsedKey = this.parseKey(e);
32+
if (parsedKey) {
33+
this._proxy.$onDidChangePassword(parsedKey);
3834
}
3935
}));
4036
}
@@ -85,7 +81,7 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
8581
const allKeys = await this.secretStorageService.keys();
8682
const keys = allKeys
8783
.map(key => this.parseKey(key))
88-
.filter(({ extensionId: id }) => id === extensionId)
84+
.filter((parsedKey): parsedKey is { extensionId: string; key: string } => parsedKey !== undefined && parsedKey.extensionId === extensionId)
8985
.map(({ key }) => key); // Return only my keys
9086
this.logService.trace(`[mainThreadSecretState] Got ${keys.length}key(s) for: `, extensionId);
9187
return keys;
@@ -95,7 +91,11 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
9591
return JSON.stringify({ extensionId, key });
9692
}
9793

98-
private parseKey(key: string): { extensionId: string; key: string } {
99-
return JSON.parse(key);
94+
private parseKey(key: string): { extensionId: string; key: string } | undefined {
95+
try {
96+
return JSON.parse(key);
97+
} catch {
98+
return undefined;
99+
}
100100
}
101101
}

0 commit comments

Comments
 (0)