Improve logic for detection of node vs web worker extension host (#248534)

* Use `WorkerGlobalScope` instead of `navigator` since node defines `navigator` now

* microsoft auth too

* better logic
This commit is contained in:
Tyler James Leonhardt
2025-05-09 10:37:27 -07:00
committed by GitHub
parent 2c38508d76
commit b2224f2fc6
3 changed files with 6 additions and 3 deletions

View File

@@ -114,11 +114,12 @@ export class GitHubServer implements IGitHubServer {
const supportedClient = isSupportedClient(callbackUri);
const supportedTarget = isSupportedTarget(this._type, this._ghesUri);
const isNodeEnvironment = typeof process !== 'undefined' && typeof process?.versions?.node === 'string';
const flows = getFlows({
target: this._type === AuthProviderType.github
? GitHubTarget.DotCom
: supportedTarget ? GitHubTarget.HostedEnterprise : GitHubTarget.Enterprise,
extensionHost: typeof navigator === 'undefined'
extensionHost: isNodeEnvironment
? this._extensionKind === vscode.ExtensionKind.UI ? ExtensionHost.Local : ExtensionHost.Remote
: ExtensionHost.WebWorker,
isSupportedClient: supportedClient

View File

@@ -71,8 +71,9 @@ export async function activate(context: ExtensionContext) {
commands.executeCommand('workbench.action.reloadWindow');
}
}));
const isNodeEnvironment = typeof process !== 'undefined' && typeof process?.versions?.node === 'string';
// Only activate the new extension if we are not running in a browser environment
if (useMsal && typeof navigator === 'undefined') {
if (useMsal && isNodeEnvironment) {
await extensionV2.activate(context, mainTelemetryReporter);
} else {
mainTelemetryReporter.sendActivatedWithClassicImplementationEvent();

View File

@@ -210,8 +210,9 @@ export class MsalAuthProvider implements AuthenticationProvider {
}
};
const isNodeEnvironment = typeof process !== 'undefined' && typeof process?.versions?.node === 'string';
const flows = getMsalFlows({
extensionHost: typeof navigator === 'undefined'
extensionHost: isNodeEnvironment
? this._context.extension.extensionKind === ExtensionKind.UI ? ExtensionHost.Local : ExtensionHost.Remote
: ExtensionHost.WebWorker,
});