From 583e9036698e6a42444e1678ffb636b8a1f86292 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 4 Oct 2017 12:41:27 +0200 Subject: [PATCH] Disable telemetry in smoke tests using an env arg --- src/vs/code/electron-browser/sharedProcessMain.ts | 5 +++-- src/vs/code/electron-main/app.ts | 2 +- src/vs/code/node/cliProcessMain.ts | 2 +- src/vs/platform/environment/common/environment.ts | 1 + src/vs/platform/environment/node/argv.ts | 3 ++- src/vs/platform/telemetry/node/telemetryNodeUtils.ts | 2 +- src/vs/workbench/electron-browser/shell.ts | 2 +- test/smoke/src/spectron/application.ts | 3 +++ 8 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/vs/code/electron-browser/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcessMain.ts index 67faa28623e..a379f352d8f 100644 --- a/src/vs/code/electron-browser/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcessMain.ts @@ -99,9 +99,10 @@ function main(server: Server, initData: ISharedProcessInitData): void { server.registerChannel('telemetryAppender', new TelemetryAppenderChannel(appender)); const services = new ServiceCollection(); - const { appRoot, extensionsPath, extensionDevelopmentPath, isBuilt, extensionTestsPath, installSource } = accessor.get(IEnvironmentService); + const environmentService = accessor.get(IEnvironmentService); + const { appRoot, extensionsPath, extensionDevelopmentPath, isBuilt, extensionTestsPath, installSource } = environmentService; - if (isBuilt && !extensionDevelopmentPath && product.enableTelemetry) { + if (isBuilt && !extensionDevelopmentPath && !environmentService.args['disable-telemetry'] && product.enableTelemetry) { const disableStorage = !!extensionTestsPath; // never keep any state when running extension tests! const storage = disableStorage ? inMemoryLocalStorageInstance : window.localStorage; const storageService = new StorageService(storage, storage); diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 789da519ee2..7b1efdfba4f 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -291,7 +291,7 @@ export class CodeApplication { services.set(ICredentialsService, new SyncDescriptor(CredentialsService)); // Telemtry - if (this.environmentService.isBuilt && !this.environmentService.isExtensionDevelopment && !!product.enableTelemetry) { + if (this.environmentService.isBuilt && !this.environmentService.isExtensionDevelopment && !this.environmentService.args['disable-telemetry'] && !!product.enableTelemetry) { const channel = getDelayedChannel(this.sharedProcessClient.then(c => c.getChannel('telemetryAppender'))); const appender = new TelemetryAppenderClient(channel); const commonProperties = resolveCommonProperties(product.commit, pkg.version, this.environmentService.installSource) diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index c822b373b3c..d3fe06e8082 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -181,7 +181,7 @@ export function main(argv: ParsedArgs): TPromise { services.set(IExtensionGalleryService, new SyncDescriptor(ExtensionGalleryService)); services.set(IChoiceService, new SyncDescriptor(ChoiceCliService)); - if (isBuilt && !extensionDevelopmentPath && product.enableTelemetry) { + if (isBuilt && !extensionDevelopmentPath && !envService.args['disable-telemetry'] && product.enableTelemetry) { const appenders: AppInsightsAppender[] = []; if (product.aiConfig && product.aiConfig.asimovKey) { diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts index e236455b8d0..dad4ea1cc5f 100644 --- a/src/vs/platform/environment/common/environment.ts +++ b/src/vs/platform/environment/common/environment.ts @@ -41,6 +41,7 @@ export interface ParsedArgs { 'open-url'?: string | string[]; 'skip-getting-started'?: boolean; 'sticky-quickopen'?: boolean; + 'disable-telemetry'?: boolean; 'export-default-configuration'?: string; 'install-source'?: string; } diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts index 7b2b9c660c1..2396982a61f 100644 --- a/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts @@ -49,7 +49,8 @@ const options: minimist.Opts = { 'show-versions', 'nolazy', 'skip-getting-started', - 'sticky-quickopen' + 'sticky-quickopen', + 'disable-telemetry' ], alias: { add: 'a', diff --git a/src/vs/platform/telemetry/node/telemetryNodeUtils.ts b/src/vs/platform/telemetry/node/telemetryNodeUtils.ts index 54e4992f8c6..9f65136e10b 100644 --- a/src/vs/platform/telemetry/node/telemetryNodeUtils.ts +++ b/src/vs/platform/telemetry/node/telemetryNodeUtils.ts @@ -11,7 +11,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; export function addGAParameters(telemetryService: ITelemetryService, environmentService: IEnvironmentService, uri: URI, origin: string, experiment = '1'): TPromise { - if (environmentService.isBuilt && !environmentService.isExtensionDevelopment && !!product.enableTelemetry) { + if (environmentService.isBuilt && !environmentService.isExtensionDevelopment && !environmentService.args['disable-telemetry'] && !!product.enableTelemetry) { if (uri.scheme === 'https' && uri.authority === 'code.visualstudio.com') { return telemetryService.getTelemetryInfo() .then(info => { diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index 7069ea3f443..c5eb4b88f20 100644 --- a/src/vs/workbench/electron-browser/shell.ts +++ b/src/vs/workbench/electron-browser/shell.ts @@ -299,7 +299,7 @@ export class WorkbenchShell { // Telemetry this.sendMachineIdToMain(this.storageService); - if (this.environmentService.isBuilt && !this.environmentService.isExtensionDevelopment && !!product.enableTelemetry) { + if (this.environmentService.isBuilt && !this.environmentService.isExtensionDevelopment && !this.environmentService.args['disable-telemetry'] && !!product.enableTelemetry) { const channel = getDelayedChannel(sharedProcess.then(c => c.getChannel('telemetryAppender'))); const commit = product.commit; const version = pkg.version; diff --git a/test/smoke/src/spectron/application.ts b/test/smoke/src/spectron/application.ts index 7f71b18dcd0..166e014462c 100644 --- a/test/smoke/src/spectron/application.ts +++ b/test/smoke/src/spectron/application.ts @@ -126,6 +126,9 @@ export class SpectronApplication { // Prevent Quick Open from closing when focus is stolen, this allows concurrent smoketest suite running args.push('--sticky-quickopen'); + // Disable telemetry for smoke tests + args.push('--disable-telemetry'); + // Ensure that running over custom extensions directory, rather than picking up the one that was used by a tester previously args.push(`--extensions-dir=${EXTENSIONS_DIR}`); -- GitLab