@@ -110,6 +110,7 @@ class OldMainThreadSecretState extends Disposable implements MainThreadSecretSta
110
110
export class MainThreadSecretState extends Disposable implements MainThreadSecretStateShape {
111
111
private readonly _proxy : ExtHostSecretStateShape ;
112
112
113
+ // TODO: Remove this when all known embedders implement a secret storage provider
113
114
private readonly _oldMainThreadSecretState : OldMainThreadSecretState | undefined ;
114
115
115
116
private readonly _sequencer = new SequencerByKey < string > ( ) ;
@@ -131,7 +132,11 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
131
132
132
133
this . _proxy = extHostContext . getProxy ( ExtHostContext . ExtHostSecretState ) ;
133
134
134
- if ( environmentService . options ?. credentialsProvider ) {
135
+ // If the embedder doesn't implement a secret storage provider, then we need to use the old API
136
+ // to ensure that secrets are still stored in a secure way. This is only temporary until all
137
+ // embedders implement a secret storage provider.
138
+ // TODO: Remove this when all known embedders implement a secret storage provider
139
+ if ( environmentService . options ?. credentialsProvider && ! environmentService . options ?. secretStorageProvider ) {
135
140
this . _oldMainThreadSecretState = this . _register ( new OldMainThreadSecretState (
136
141
this . _proxy ,
137
142
credentialsService ,
@@ -158,7 +163,7 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
158
163
}
159
164
160
165
private async doGetPassword ( extensionId : string , key : string ) : Promise < string | undefined > {
161
- // TODO: Remove this when we remove the old API
166
+ // TODO: Remove this when all known embedders implement a secret storage provider
162
167
if ( this . _oldMainThreadSecretState ) {
163
168
return await this . _oldMainThreadSecretState . $getPassword ( extensionId , key ) ;
164
169
}
@@ -184,7 +189,7 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
184
189
}
185
190
186
191
private async doSetPassword ( extensionId : string , key : string , value : string ) : Promise < void > {
187
- // TODO: Remove this when we remove the old API
192
+ // TODO: Remove this when all known embedders implement a secret storage provider
188
193
if ( this . _oldMainThreadSecretState ) {
189
194
return await this . _oldMainThreadSecretState . $setPassword ( extensionId , key , value ) ;
190
195
}
@@ -200,7 +205,7 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre
200
205
}
201
206
202
207
private async doDeletePassword ( extensionId : string , key : string ) : Promise < void > {
203
- // TODO: Remove this when we remove the old API
208
+ // TODO: Remove this when all known embedders implement a secret storage provider
204
209
if ( this . _oldMainThreadSecretState ) {
205
210
return await this . _oldMainThreadSecretState . $deletePassword ( extensionId , key ) ;
206
211
}
0 commit comments