@@ -27,13 +27,6 @@ class LocalStorageCredentialsProvider implements ICredentialsProvider {
27
27
28
28
static readonly CREDENTIALS_OPENED_KEY = 'credentials.provider' ;
29
29
30
- constructor ( credentials : ICredential [ ] ) {
31
- this . _credentials = credentials ;
32
- for ( const { service, account, password } of this . _credentials ) {
33
- this . setPassword ( service , account , password ) ;
34
- }
35
- }
36
-
37
30
private _credentials : ICredential [ ] | undefined ;
38
31
private get credentials ( ) : ICredential [ ] {
39
32
if ( ! this . _credentials ) {
@@ -437,16 +430,20 @@ class WindowIndicator implements IWindowIndicator {
437
430
window . location . href = `${ window . location . origin } ?${ queryString } ` ;
438
431
} ;
439
432
440
- // Find credentials from DOM
433
+ // Credentials (with support of predefined ones via meta element)
434
+ const credentialsProvider = new LocalStorageCredentialsProvider ( ) ;
435
+
441
436
const credentialsElement = document . getElementById ( 'vscode-workbench-credentials' ) ;
442
437
const credentialsElementAttribute = credentialsElement ? credentialsElement . getAttribute ( 'data-settings' ) : undefined ;
443
438
let credentials = undefined ;
444
439
if ( credentialsElementAttribute ) {
445
440
try {
446
441
credentials = JSON . parse ( credentialsElementAttribute ) ;
442
+ for ( const { service, account, password } of credentials ) {
443
+ credentialsProvider . setPassword ( service , account , password ) ;
444
+ }
447
445
} catch ( error ) { /* Invalid credentials are passed. Ignore. */ }
448
446
}
449
- const credentialsProvider = new LocalStorageCredentialsProvider ( credentials || [ ] ) ;
450
447
451
448
// Finally create workbench
452
449
create ( document . body , {
0 commit comments