mirror of https://github.com/microsoft/vscode.git
exp - introduce and use flag to disable experiments (#254057)
* exp - introduce and use flag to disable experiments * fix
This commit is contained in:
parent
93858ca360
commit
367fc5f243
|
@ -84,7 +84,7 @@ const extensions = [
|
|||
|
||||
|
||||
const defaultLaunchArgs = process.env.API_TESTS_EXTRA_ARGS?.split(' ') || [
|
||||
'--disable-telemetry', '--skip-welcome', '--skip-release-notes', `--crash-reporter-directory=${__dirname}/.build/crashes`, `--logsPath=${__dirname}/.build/logs/integration-tests`, '--no-cached-data', '--disable-updates', '--use-inmemory-secretstorage', '--disable-extensions', '--disable-workspace-trust'
|
||||
'--disable-telemetry', '--disable-experiments', '--skip-welcome', '--skip-release-notes', `--crash-reporter-directory=${__dirname}/.build/crashes`, `--logsPath=${__dirname}/.build/logs/integration-tests`, '--no-cached-data', '--disable-updates', '--use-inmemory-secretstorage', '--disable-extensions', '--disable-workspace-trust'
|
||||
];
|
||||
|
||||
const config = defineConfig(extensions.map(extension => {
|
||||
|
|
|
@ -142,7 +142,7 @@ export function activate(context: vscode.ExtensionContext) {
|
|||
}
|
||||
|
||||
const { updateUrl, commit, quality, serverDataFolderName, serverApplicationName, dataFolderName } = getProductConfiguration();
|
||||
const commandArgs = ['--host=127.0.0.1', '--port=0', '--disable-telemetry', '--use-host-proxy', '--accept-server-license-terms'];
|
||||
const commandArgs = ['--host=127.0.0.1', '--port=0', '--disable-telemetry', '--disable-experiments', '--use-host-proxy', '--accept-server-license-terms'];
|
||||
const env = getNewEnv();
|
||||
const remoteDataDir = process.env['TESTRESOLVER_DATA_FOLDER'] || path.join(os.homedir(), `${serverDataFolderName || dataFolderName}-testresolver`);
|
||||
const logsDir = process.env['TESTRESOLVER_LOGS_FOLDER'];
|
||||
|
|
|
@ -35,7 +35,7 @@ if %errorlevel% neq 0 exit /b %errorlevel%
|
|||
|
||||
:: Tests in the extension host
|
||||
|
||||
set API_TESTS_EXTRA_ARGS=--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-extensions --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR%
|
||||
set API_TESTS_EXTRA_ARGS=--disable-telemetry --disable-experiments --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-extensions --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR%
|
||||
|
||||
echo.
|
||||
echo ### API tests (folder)
|
||||
|
|
|
@ -41,7 +41,7 @@ echo
|
|||
|
||||
# Tests in the extension host
|
||||
|
||||
API_TESTS_EXTRA_ARGS="--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=$VSCODECRASHDIR --logsPath=$VSCODELOGSDIR --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-extensions --disable-workspace-trust --user-data-dir=$VSCODEUSERDATADIR"
|
||||
API_TESTS_EXTRA_ARGS="--disable-telemetry --disable-experiments --skip-welcome --skip-release-notes --crash-reporter-directory=$VSCODECRASHDIR --logsPath=$VSCODELOGSDIR --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-extensions --disable-workspace-trust --user-data-dir=$VSCODEUSERDATADIR"
|
||||
|
||||
if [ -z "$INTEGRATION_TEST_APP_NAME" ]; then
|
||||
kill_app() { true; }
|
||||
|
|
|
@ -55,7 +55,7 @@ echo Storing log files into '%VSCODELOGSDIR%'
|
|||
|
||||
:: Tests in the extension host
|
||||
|
||||
set API_TESTS_EXTRA_ARGS=--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-inspect --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR%
|
||||
set API_TESTS_EXTRA_ARGS=--disable-telemetry --disable-experiments --skip-welcome --skip-release-notes --crash-reporter-directory=%VSCODECRASHDIR% --logsPath=%VSCODELOGSDIR% --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-inspect --disable-workspace-trust --user-data-dir=%VSCODEUSERDATADIR%
|
||||
|
||||
echo.
|
||||
echo ### API tests (folder)
|
||||
|
|
|
@ -65,7 +65,7 @@ else
|
|||
kill_app() { killall $INTEGRATION_TEST_APP_NAME || true; }
|
||||
fi
|
||||
|
||||
API_TESTS_EXTRA_ARGS="--disable-telemetry --skip-welcome --skip-release-notes --crash-reporter-directory=$VSCODECRASHDIR --logsPath=$VSCODELOGSDIR --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-workspace-trust --user-data-dir=$VSCODEUSERDATADIR"
|
||||
API_TESTS_EXTRA_ARGS="--disable-telemetry --disable-experiments --skip-welcome --skip-release-notes --crash-reporter-directory=$VSCODECRASHDIR --logsPath=$VSCODELOGSDIR --no-cached-data --disable-updates --use-inmemory-secretstorage --disable-workspace-trust --user-data-dir=$VSCODEUSERDATADIR"
|
||||
|
||||
echo "Storing crash reports into '$VSCODECRASHDIR'."
|
||||
echo "Storing log files into '$VSCODELOGSDIR'."
|
||||
|
|
|
@ -229,6 +229,7 @@ class StandaloneEnvironmentService implements IEnvironmentService {
|
|||
readonly debugExtensionHost: IExtensionHostDebugParams = { port: null, break: false };
|
||||
readonly isExtensionDevelopment: boolean = false;
|
||||
readonly disableExtensions: boolean | string[] = false;
|
||||
readonly disableExperiments: boolean = false;
|
||||
readonly enableExtensions?: readonly string[] | undefined = undefined;
|
||||
readonly extensionDevelopmentLocationURI?: URI[] | undefined = undefined;
|
||||
readonly extensionDevelopmentKind?: ExtensionKind[] | undefined = undefined;
|
||||
|
|
|
@ -139,6 +139,7 @@ export interface NativeParsedArgs {
|
|||
'enable-rdp-display-tracking'?: boolean;
|
||||
'disable-layout-restore'?: boolean;
|
||||
'startup-experiment-group'?: string;
|
||||
'disable-experiments'?: boolean;
|
||||
|
||||
// chromium command line args: https://electronjs.org/docs/all#supported-chrome-command-line-switches
|
||||
'no-proxy-server'?: boolean;
|
||||
|
|
|
@ -83,8 +83,9 @@ export interface IEnvironmentService {
|
|||
verbose: boolean;
|
||||
isBuilt: boolean;
|
||||
|
||||
// --- telemetry
|
||||
// --- telemetry/exp
|
||||
disableTelemetry: boolean;
|
||||
disableExperiments: boolean;
|
||||
serviceMachineIdResource: URI;
|
||||
|
||||
// --- Policy
|
||||
|
|
|
@ -230,6 +230,9 @@ export abstract class AbstractNativeEnvironmentService implements INativeEnviron
|
|||
@memoize
|
||||
get disableTelemetry(): boolean { return !!this.args['disable-telemetry']; }
|
||||
|
||||
@memoize
|
||||
get disableExperiments(): boolean { return !!this.args['disable-experiments']; }
|
||||
|
||||
@memoize
|
||||
get disableWorkspaceTrust(): boolean { return !!this.args['disable-workspace-trust']; }
|
||||
|
||||
|
|
|
@ -200,6 +200,7 @@ export const OPTIONS: OptionDescriptions<Required<NativeParsedArgs>> = {
|
|||
'unresponsive-sample-period': { type: 'string' },
|
||||
'enable-rdp-display-tracking': { type: 'boolean' },
|
||||
'disable-layout-restore': { type: 'boolean' },
|
||||
'disable-experiments': { type: 'boolean' },
|
||||
'startup-experiment-group': { type: 'string', cat: 't', args: 'control|maximizedChat|splitEmptyEditorChat|splitWelcomeChat', description: localize('startupExperimentGroup', "Override the startup experiment group.") },
|
||||
|
||||
// chromium flags
|
||||
|
|
|
@ -37,6 +37,7 @@ export const serverOptions: OptionDescriptions<Required<ServerParsedArgs>> = {
|
|||
'user-data-dir': OPTIONS['user-data-dir'],
|
||||
'enable-smoke-test-driver': OPTIONS['enable-smoke-test-driver'],
|
||||
'disable-telemetry': OPTIONS['disable-telemetry'],
|
||||
'disable-experiments': OPTIONS['disable-experiments'],
|
||||
'disable-workspace-trust': OPTIONS['disable-workspace-trust'],
|
||||
'file-watcher-polling': { type: 'string', deprecates: ['fileWatcherPolling'] },
|
||||
'log': OPTIONS['log'],
|
||||
|
@ -160,6 +161,7 @@ export interface ServerParsedArgs {
|
|||
'enable-smoke-test-driver'?: boolean;
|
||||
|
||||
'disable-telemetry'?: boolean;
|
||||
'disable-experiments'?: boolean;
|
||||
'file-watcher-polling'?: string;
|
||||
|
||||
'log'?: string[];
|
||||
|
|
|
@ -100,7 +100,7 @@ export class WorkbenchAssignmentService extends BaseAssignmentService {
|
|||
}
|
||||
|
||||
protected override get experimentsEnabled(): boolean {
|
||||
return this.configurationService.getValue('workbench.enableExperiments') === true;
|
||||
return !this.environmentService.disableExperiments && this.configurationService.getValue('workbench.enableExperiments') === true;
|
||||
}
|
||||
|
||||
override async getTreatment<T extends string | number | boolean>(name: string): Promise<T | undefined> {
|
||||
|
|
|
@ -88,6 +88,11 @@ export class CoreExperimentationService extends Disposable implements ICoreExper
|
|||
@IWorkbenchEnvironmentService private readonly environmentService: IWorkbenchEnvironmentService,
|
||||
) {
|
||||
super();
|
||||
|
||||
if (environmentService.disableExperiments) {
|
||||
return; // explicitly disabled
|
||||
}
|
||||
|
||||
this.initializeExperiments();
|
||||
}
|
||||
|
||||
|
|
|
@ -236,6 +236,9 @@ export class BrowserWorkbenchEnvironmentService implements IBrowserWorkbenchEnvi
|
|||
@memoize
|
||||
get disableTelemetry(): boolean { return false; }
|
||||
|
||||
@memoize
|
||||
get disableExperiments(): boolean { return false; }
|
||||
|
||||
@memoize
|
||||
get verbose(): boolean { return this.payload?.get('verbose') === 'true'; }
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ export async function resolveElectronConfiguration(options: LaunchOptions): Prom
|
|||
'--skip-release-notes',
|
||||
'--skip-welcome',
|
||||
'--disable-telemetry',
|
||||
'--disable-experiments',
|
||||
'--no-cached-data',
|
||||
'--disable-updates',
|
||||
'--use-inmemory-secretstorage',
|
||||
|
|
|
@ -44,6 +44,7 @@ async function launchServer(options: LaunchOptions) {
|
|||
|
||||
const args = [
|
||||
'--disable-telemetry',
|
||||
'--disable-experiments',
|
||||
'--disable-workspace-trust',
|
||||
`--port=${port++}`,
|
||||
'--enable-smoke-test-driver',
|
||||
|
|
|
@ -169,7 +169,7 @@ async function launchServer(browserType: BrowserType, browserChannel: BrowserCha
|
|||
...process.env
|
||||
};
|
||||
|
||||
const serverArgs = ['--enable-proposed-api', '--disable-telemetry', '--server-data-dir', userDataDir, '--accept-server-license-terms', '--disable-workspace-trust'];
|
||||
const serverArgs = ['--enable-proposed-api', '--disable-telemetry', '--disable-experiments', '--server-data-dir', userDataDir, '--accept-server-license-terms', '--disable-workspace-trust'];
|
||||
|
||||
let serverLocation: string;
|
||||
if (process.env.VSCODE_REMOTE_SERVER_PATH) {
|
||||
|
|
Loading…
Reference in New Issue