From 811dc8d45a069c1b71e6ea4adeccb7235b450f91 Mon Sep 17 00:00:00 2001 From: Rachel Macfarlane Date: Mon, 1 Mar 2021 13:50:51 -0800 Subject: [PATCH] Remove authentication provider package.json declaration --- extensions/github-authentication/package.json | 8 +-- .../microsoft-authentication/package.json | 8 --- .../api/browser/mainThreadAuthentication.ts | 6 -- .../workbench/api/common/extHost.protocol.ts | 1 - .../api/common/extHostAuthentication.ts | 5 -- .../browser/authenticationService.ts | 72 ------------------- .../browser/userDataSyncWorkbenchService.ts | 4 +- 7 files changed, 2 insertions(+), 102 deletions(-) diff --git a/extensions/github-authentication/package.json b/extensions/github-authentication/package.json index 726949d02e0..543a8608ac1 100644 --- a/extensions/github-authentication/package.json +++ b/extensions/github-authentication/package.json @@ -34,13 +34,7 @@ "when": "false" } ] - }, - "authentication": [ - { - "label": "GitHub", - "id": "github" - } - ] + } }, "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", "main": "./out/extension.js", diff --git a/extensions/microsoft-authentication/package.json b/extensions/microsoft-authentication/package.json index 54405b6939f..a4d5cda967e 100644 --- a/extensions/microsoft-authentication/package.json +++ b/extensions/microsoft-authentication/package.json @@ -20,14 +20,6 @@ "workspace", "web" ], - "contributes": { - "authentication": [ - { - "label": "Microsoft", - "id": "microsoft" - } - ] - }, "aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217", "main": "./out/extension.js", "browser": "./dist/browser/extension.js", diff --git a/src/vs/workbench/api/browser/mainThreadAuthentication.ts b/src/vs/workbench/api/browser/mainThreadAuthentication.ts index f2cc04cd726..3de907b0514 100644 --- a/src/vs/workbench/api/browser/mainThreadAuthentication.ts +++ b/src/vs/workbench/api/browser/mainThreadAuthentication.ts @@ -136,12 +136,6 @@ export class MainThreadAuthentication extends Disposable implements MainThreadAu this._register(this.authenticationService.onDidUnregisterAuthenticationProvider(info => { this._proxy.$onDidChangeAuthenticationProviders([], [info]); })); - - this._proxy.$setProviders(this.authenticationService.declaredProviders); - - this._register(this.authenticationService.onDidChangeDeclaredProviders(e => { - this._proxy.$setProviders(e); - })); } async $registerAuthenticationProvider(id: string, label: string, supportsMultipleAccounts: boolean): Promise { diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 8871e02ccb6..4b12d94eb0a 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -1140,7 +1140,6 @@ export interface ExtHostAuthenticationShape { $removeSession(id: string, sessionId: string): Promise; $onDidChangeAuthenticationSessions(id: string, label: string): Promise; $onDidChangeAuthenticationProviders(added: modes.AuthenticationProviderInformation[], removed: modes.AuthenticationProviderInformation[]): Promise; - $setProviders(providers: modes.AuthenticationProviderInformation[]): Promise; } export interface ExtHostSecretStateShape { diff --git a/src/vs/workbench/api/common/extHostAuthentication.ts b/src/vs/workbench/api/common/extHostAuthentication.ts index d32ec2ad1dc..aa56c49e43c 100644 --- a/src/vs/workbench/api/common/extHostAuthentication.ts +++ b/src/vs/workbench/api/common/extHostAuthentication.ts @@ -39,11 +39,6 @@ export class ExtHostAuthentication implements ExtHostAuthenticationShape { this._proxy = mainContext.getProxy(MainContext.MainThreadAuthentication); } - $setProviders(providers: vscode.AuthenticationProviderInformation[]): Promise { - this._providers = providers; - return Promise.resolve(); - } - get providers(): ReadonlyArray { return Object.freeze(this._providers.slice()); } diff --git a/src/vs/workbench/services/authentication/browser/authenticationService.ts b/src/vs/workbench/services/authentication/browser/authenticationService.ts index 8bf1a1dd45f..1ac5f662b31 100644 --- a/src/vs/workbench/services/authentication/browser/authenticationService.ts +++ b/src/vs/workbench/services/authentication/browser/authenticationService.ts @@ -18,10 +18,6 @@ import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storag import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IProductService } from 'vs/platform/product/common/productService'; import { isString } from 'vs/base/common/types'; -import { ExtensionsRegistry } from 'vs/workbench/services/extensions/common/extensionsRegistry'; -import { IJSONSchema } from 'vs/base/common/jsonSchema'; -import { flatten } from 'vs/base/common/arrays'; -import { isFalsyOrWhitespace } from 'vs/base/common/strings'; import { ActivationKind, IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; import { Severity } from 'vs/platform/notification/common/notification'; @@ -121,11 +117,6 @@ export interface IAuthenticationService { readonly onDidUnregisterAuthenticationProvider: Event; readonly onDidChangeSessions: Event<{ providerId: string, label: string, event: AuthenticationSessionsChangeEvent }>; - - // TODO @RMacfarlane completely remove this property - declaredProviders: AuthenticationProviderInformation[]; - readonly onDidChangeDeclaredProviders: Event; - getSessions(id: string, scopes?: string[], activateImmediate?: boolean): Promise>; getLabel(providerId: string): string; supportsMultipleAccounts(providerId: string): boolean; @@ -168,29 +159,6 @@ CommandsRegistry.registerCommand('workbench.getCodeExchangeProxyEndpoints', func return environmentService.options?.codeExchangeProxyEndpoints; }); -const authenticationDefinitionSchema: IJSONSchema = { - type: 'object', - additionalProperties: false, - properties: { - id: { - type: 'string', - description: nls.localize('authentication.id', 'The id of the authentication provider.') - }, - label: { - type: 'string', - description: nls.localize('authentication.label', 'The human readable name of the authentication provider.'), - } - } -}; - -const authenticationExtPoint = ExtensionsRegistry.registerExtensionPoint({ - extensionPoint: 'authentication', - jsonSchema: { - description: nls.localize({ key: 'authenticationExtensionPoint', comment: [`'Contributes' means adds here`] }, 'Contributes authentication'), - type: 'array', - items: authenticationDefinitionSchema - } -}); export class AuthenticationService extends Disposable implements IAuthenticationService { declare readonly _serviceBrand: undefined; @@ -201,11 +169,6 @@ export class AuthenticationService extends Disposable implements IAuthentication private _authenticationProviders: Map = new Map(); - /** - * All providers that have been statically declared by extensions. These may not be registered. - */ - declaredProviders: AuthenticationProviderInformation[] = []; - private _onDidRegisterAuthenticationProvider: Emitter = this._register(new Emitter()); readonly onDidRegisterAuthenticationProvider: Event = this._onDidRegisterAuthenticationProvider.event; @@ -215,9 +178,6 @@ export class AuthenticationService extends Disposable implements IAuthentication private _onDidChangeSessions: Emitter<{ providerId: string, label: string, event: AuthenticationSessionsChangeEvent }> = this._register(new Emitter<{ providerId: string, label: string, event: AuthenticationSessionsChangeEvent }>()); readonly onDidChangeSessions: Event<{ providerId: string, label: string, event: AuthenticationSessionsChangeEvent }> = this._onDidChangeSessions.event; - private _onDidChangeDeclaredProviders: Emitter = this._register(new Emitter()); - readonly onDidChangeDeclaredProviders: Event = this._onDidChangeDeclaredProviders.event; - constructor( @IActivityService private readonly activityService: IActivityService, @IExtensionService private readonly extensionService: IExtensionService, @@ -234,38 +194,6 @@ export class AuthenticationService extends Disposable implements IAuthentication precondition: ContextKeyExpr.false() }, }); - - authenticationExtPoint.setHandler((extensions, { added, removed }) => { - added.forEach(point => { - for (const provider of point.value) { - if (isFalsyOrWhitespace(provider.id)) { - point.collector.error(nls.localize('authentication.missingId', 'An authentication contribution must specify an id.')); - continue; - } - - if (isFalsyOrWhitespace(provider.label)) { - point.collector.error(nls.localize('authentication.missingLabel', 'An authentication contribution must specify a label.')); - continue; - } - - if (!this.declaredProviders.some(p => p.id === provider.id)) { - this.declaredProviders.push(provider); - } else { - point.collector.error(nls.localize('authentication.idConflict', "This authentication id '{0}' has already been registered", provider.id)); - } - } - }); - - const removedExtPoints = flatten(removed.map(r => r.value)); - removedExtPoints.forEach(point => { - const index = this.declaredProviders.findIndex(provider => provider.id === point.id); - if (index > -1) { - this.declaredProviders.splice(index, 1); - } - }); - - this._onDidChangeDeclaredProviders.fire(this.declaredProviders); - }); } getProviderIds(): string[] { diff --git a/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.ts b/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.ts index 48602a7f767..587b70283f3 100644 --- a/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.ts +++ b/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.ts @@ -132,7 +132,7 @@ export class UserDataSyncWorkbenchService extends Disposable implements IUserDat } private updateAuthenticationProviders(): void { - this._authenticationProviders = (this.userDataSyncStoreManagementService.userDataSyncStore?.authenticationProviders || []).filter(({ id }) => this.authenticationService.declaredProviders.some(provider => provider.id === id)); + this._authenticationProviders = (this.userDataSyncStoreManagementService.userDataSyncStore?.authenticationProviders || []).filter(({ id }) => this.authenticationService.getProviderIds().some(providerId => providerId === id)); } private isSupportedAuthenticationProviderId(authenticationProviderId: string): boolean { @@ -167,8 +167,6 @@ export class UserDataSyncWorkbenchService extends Disposable implements IUserDat await this.update(); - this._register(this.authenticationService.onDidChangeDeclaredProviders(() => this.updateAuthenticationProviders())); - this._register( Event.any( Event.filter(