diff --git a/src/vs/platform/assignment/common/assignmentService.ts b/src/vs/platform/assignment/common/assignmentService.ts index 413bd60f7ffe4..d5ab03ae0b62d 100644 --- a/src/vs/platform/assignment/common/assignmentService.ts +++ b/src/vs/platform/assignment/common/assignmentService.ts @@ -19,7 +19,7 @@ export abstract class BaseAssignmentService implements IAssignmentService { private overrideInitDelay: Promise; protected get experimentsEnabled(): boolean { - return true; + return !this.environmentService.disableExperiments; } constructor( diff --git a/src/vs/workbench/services/assignment/common/assignmentService.ts b/src/vs/workbench/services/assignment/common/assignmentService.ts index d18437e1bca81..ebded17a67d33 100644 --- a/src/vs/workbench/services/assignment/common/assignmentService.ts +++ b/src/vs/workbench/services/assignment/common/assignmentService.ts @@ -18,6 +18,7 @@ import { Registry } from '../../../../platform/registry/common/platform.js'; import { BaseAssignmentService } from '../../../../platform/assignment/common/assignmentService.js'; import { workbenchConfigurationNodeBase } from '../../../common/configuration.js'; import { IConfigurationRegistry, Extensions as ConfigurationExtensions, ConfigurationScope } from '../../../../platform/configuration/common/configurationRegistry.js'; +import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js'; import { IEnvironmentService } from '../../../../platform/environment/common/environment.js'; export const IWorkbenchAssignmentService = createDecorator('WorkbenchAssignmentService'); @@ -86,7 +87,8 @@ export class WorkbenchAssignmentService extends BaseAssignmentService { @IStorageService storageService: IStorageService, @IConfigurationService configurationService: IConfigurationService, @IProductService productService: IProductService, - @IEnvironmentService environmentService: IEnvironmentService + @IEnvironmentService environmentService: IEnvironmentService, + @IWorkbenchEnvironmentService private readonly workbenchEnvironmentService: IWorkbenchEnvironmentService ) { super( @@ -100,7 +102,10 @@ export class WorkbenchAssignmentService extends BaseAssignmentService { } protected override get experimentsEnabled(): boolean { - return !this.environmentService.disableExperiments && this.configurationService.getValue('workbench.enableExperiments') === true; + return !this.environmentService.disableExperiments && + !this.environmentService.extensionTestsLocationURI && + !this.workbenchEnvironmentService.enableSmokeTestDriver && + this.configurationService.getValue('workbench.enableExperiments') === true; } override async getTreatment(name: string): Promise { diff --git a/src/vs/workbench/services/coreExperimentation/common/coreExperimentationService.ts b/src/vs/workbench/services/coreExperimentation/common/coreExperimentationService.ts index 944e9bee9de8f..5ab4a26c6b3c3 100644 --- a/src/vs/workbench/services/coreExperimentation/common/coreExperimentationService.ts +++ b/src/vs/workbench/services/coreExperimentation/common/coreExperimentationService.ts @@ -89,8 +89,12 @@ export class CoreExperimentationService extends Disposable implements ICoreExper ) { super(); - if (environmentService.disableExperiments) { - return; // explicitly disabled + if ( + environmentService.disableExperiments || + environmentService.enableSmokeTestDriver || + environmentService.extensionTestsLocationURI + ) { + return; //not applicable in this environment } this.initializeExperiments();