From a5a54adba8eb8eb6ab8873d2e2099ee92efa0567 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 10 Sep 2020 13:47:37 +0200 Subject: [PATCH] web - fix bad credentials lookup --- src/vs/code/browser/workbench/workbench.ts | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/vs/code/browser/workbench/workbench.ts b/src/vs/code/browser/workbench/workbench.ts index ad5272b2232..9b814729d31 100644 --- a/src/vs/code/browser/workbench/workbench.ts +++ b/src/vs/code/browser/workbench/workbench.ts @@ -27,13 +27,6 @@ class LocalStorageCredentialsProvider implements ICredentialsProvider { static readonly CREDENTIALS_OPENED_KEY = 'credentials.provider'; - constructor(credentials: ICredential[]) { - this._credentials = credentials; - for (const { service, account, password } of this._credentials) { - this.setPassword(service, account, password); - } - } - private _credentials: ICredential[] | undefined; private get credentials(): ICredential[] { if (!this._credentials) { @@ -437,16 +430,20 @@ class WindowIndicator implements IWindowIndicator { window.location.href = `${window.location.origin}?${queryString}`; }; - // Find credentials from DOM + // Credentials (with support of predefined ones via meta element) + const credentialsProvider = new LocalStorageCredentialsProvider(); + const credentialsElement = document.getElementById('vscode-workbench-credentials'); const credentialsElementAttribute = credentialsElement ? credentialsElement.getAttribute('data-settings') : undefined; let credentials = undefined; if (credentialsElementAttribute) { try { credentials = JSON.parse(credentialsElementAttribute); + for (const { service, account, password } of credentials) { + credentialsProvider.setPassword(service, account, password); + } } catch (error) { /* Invalid credentials are passed. Ignore. */ } } - const credentialsProvider = new LocalStorageCredentialsProvider(credentials || []); // Finally create workbench create(document.body, {