Skip to content

Commit 4fce356

Browse files
Revert "Remove redundant activation & log extension service activation errors…" (#267062)
This reverts commit ea1973f.
1 parent 67b5b2f commit 4fce356

4 files changed

Lines changed: 13 additions & 6 deletions

File tree

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ import { AuthenticationWWWAuthenticateRequest, ExtHostAuthenticationShape, ExtHo
1111
import { IDialogService, IPromptButton } from '../../../platform/dialogs/common/dialogs.js';
1212
import Severity from '../../../base/common/severity.js';
1313
import { INotificationService } from '../../../platform/notification/common/notification.js';
14+
import { ActivationKind, IExtensionService } from '../../services/extensions/common/extensions.js';
1415
import { ITelemetryService } from '../../../platform/telemetry/common/telemetry.js';
1516
import { Emitter, Event } from '../../../base/common/event.js';
1617
import { IAuthenticationAccessService } from '../../services/authentication/browser/authenticationAccessService.js';
1718
import { IAuthenticationUsageService } from '../../services/authentication/browser/authenticationUsageService.js';
19+
import { getAuthenticationProviderActivationEvent } from '../../services/authentication/browser/authenticationService.js';
1820
import { URI, UriComponents } from '../../../base/common/uri.js';
1921
import { IOpenerService } from '../../../platform/opener/common/opener.js';
2022
import { CancellationError } from '../../../base/common/errors.js';
@@ -116,6 +118,7 @@ export class MainThreadAuthentication extends Disposable implements MainThreadAu
116118
@IAuthenticationUsageService private readonly authenticationUsageService: IAuthenticationUsageService,
117119
@IDialogService private readonly dialogService: IDialogService,
118120
@INotificationService private readonly notificationService: INotificationService,
121+
@IExtensionService private readonly extensionService: IExtensionService,
119122
@ITelemetryService private readonly telemetryService: ITelemetryService,
120123
@IOpenerService private readonly openerService: IOpenerService,
121124
@ILogService private readonly logService: ILogService,
@@ -200,6 +203,12 @@ export class MainThreadAuthentication extends Disposable implements MainThreadAu
200203
}
201204
}
202205

206+
async $ensureProvider(id: string): Promise<void> {
207+
if (!this.authenticationService.isAuthenticationProviderRegistered(id)) {
208+
return await this.extensionService.activateByEvent(getAuthenticationProviderActivationEvent(id), ActivationKind.Immediate);
209+
}
210+
}
211+
203212
async $sendDidChangeSessions(providerId: string, event: AuthenticationSessionsChangeEvent): Promise<void> {
204213
const obj = this._registrations.get(providerId);
205214
if (obj instanceof Emitter) {

src/vs/workbench/api/common/extHost.protocol.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ export interface AuthenticationConstraint {
205205
export interface MainThreadAuthenticationShape extends IDisposable {
206206
$registerAuthenticationProvider(id: string, label: string, supportsMultipleAccounts: boolean, supportedAuthorizationServers?: UriComponents[], supportsChallenges?: boolean): Promise<void>;
207207
$unregisterAuthenticationProvider(id: string): Promise<void>;
208+
$ensureProvider(id: string): Promise<void>;
208209
$sendDidChangeSessions(providerId: string, event: AuthenticationSessionsChangeEvent): Promise<void>;
209210
$getSession(providerId: string, scopeListOrRequest: ReadonlyArray<string> | AuthenticationWWWAuthenticateRequest, extensionId: string, extensionName: string, options: AuthenticationGetSessionOptions): Promise<AuthenticationSession | undefined>;
210211
$getAccounts(providerId: string): Promise<ReadonlyArray<AuthenticationSessionAccount>>;

src/vs/workbench/api/common/extHostAuthentication.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,14 @@ export class ExtHostAuthentication implements ExtHostAuthenticationShape {
112112
}
113113

114114
return await this._getSessionTaskSingler.getOrCreate(singlerKey, async () => {
115+
await this._proxy.$ensureProvider(providerId);
115116
const extensionName = requestingExtension.displayName || requestingExtension.name;
116117
return this._proxy.$getSession(providerId, scopesOrRequest, extensionId, extensionName, options);
117118
});
118119
}
119120

120121
async getAccounts(providerId: string) {
122+
await this._proxy.$ensureProvider(providerId);
121123
return await this._proxy.$getAccounts(providerId);
122124
}
123125

src/vs/workbench/services/authentication/browser/authenticationService.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -396,12 +396,7 @@ export class AuthenticationService extends Disposable implements IAuthentication
396396
}
397397

398398
private async tryActivateProvider(providerId: string, activateImmediate: boolean): Promise<IAuthenticationProvider> {
399-
try {
400-
await this._extensionService.activateByEvent(getAuthenticationProviderActivationEvent(providerId), activateImmediate ? ActivationKind.Immediate : ActivationKind.Normal);
401-
} catch (e) {
402-
this._logService.error(`Extension Service failed to activate authentication provider '${providerId}':`, e);
403-
throw e;
404-
}
399+
await this._extensionService.activateByEvent(getAuthenticationProviderActivationEvent(providerId), activateImmediate ? ActivationKind.Immediate : ActivationKind.Normal);
405400
let provider = this._authenticationProviders.get(providerId);
406401
if (provider) {
407402
return provider;

0 commit comments

Comments
 (0)