diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index 9c2b5bfec1c72bb30540c28b7cc3366bc9c500fe..27d3bce9bf3c62158468de8fbc02f7911ebcab2a 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -33,6 +33,8 @@ import { mkdirp, writeFile } from 'vs/base/node/pfs'; import { IChoiceService } from 'vs/platform/message/common/message'; import { ChoiceCliService } from 'vs/platform/message/node/messageCli'; import { getBaseLabel } from 'vs/base/common/labels'; +import { IStateService } from 'vs/platform/state/common/state'; +import { StateService } from 'vs/platform/state/node/stateService'; const notFound = (id: string) => localize('notFound', "Extension '{0}' not found.", id); const notInstalled = (id: string) => localize('notInstalled', "Extension '{0}' is not installed.", id); @@ -176,11 +178,13 @@ const eventPrefix = 'monacoworkbench'; export function main(argv: ParsedArgs): TPromise { const services = new ServiceCollection(); services.set(IEnvironmentService, new SyncDescriptor(EnvironmentService, argv, process.execPath)); + services.set(IStateService, new SyncDescriptor(StateService)); const instantiationService: IInstantiationService = new InstantiationService(services); return instantiationService.invokeFunction(accessor => { const envService = accessor.get(IEnvironmentService); + const stateService = accessor.get(IStateService); return TPromise.join([envService.appSettingsHome, envService.extensionsPath].map(p => mkdirp(p))).then(() => { const { appRoot, extensionsPath, extensionDevelopmentPath, isBuilt, installSource } = envService; @@ -205,7 +209,7 @@ export function main(argv: ParsedArgs): TPromise { const config: ITelemetryServiceConfig = { appender: combinedAppender(...appenders), - commonProperties: resolveCommonProperties(product.commit, pkg.version, installSource), + commonProperties: resolveCommonProperties(product.commit, pkg.version, installSource, stateService.getItem('telemetry.machineId')), piiPaths: [appRoot, extensionsPath] }; diff --git a/src/vs/platform/telemetry/node/commonProperties.ts b/src/vs/platform/telemetry/node/commonProperties.ts index 01acf1c7234c32c75a694e51e71883c2e44d5a60..fa18f26725d051e2cee834de05c90e7966c55406 100644 --- a/src/vs/platform/telemetry/node/commonProperties.ts +++ b/src/vs/platform/telemetry/node/commonProperties.ts @@ -8,12 +8,10 @@ import * as os from 'os'; import { TPromise } from 'vs/base/common/winjs.base'; import * as uuid from 'vs/base/common/uuid'; -export function resolveCommonProperties(commit: string, version: string, source: string, machineId?: string): TPromise<{ [name: string]: string; }> { +export function resolveCommonProperties(commit: string, version: string, source: string, machineId: string): TPromise<{ [name: string]: string; }> { const result: { [name: string]: string; } = Object.create(null); // __GDPR__COMMON__ "common.machineId" : { "classification": "EndUserPseudonymizedInformation", "purpose": "FeatureInsight" } - if (typeof machineId === 'string') { - result['common.machineId'] = machineId; - } + result['common.machineId'] = machineId; // __GDPR__COMMON__ "sessionID" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } result['sessionID'] = uuid.generateUuid() + Date.now(); // __GDPR__COMMON__ "commitHash" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }