mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 13:29:44 +00:00
Rename vsDeviceId (#213261)
This commit is contained in:
parent
eccc47493a
commit
cd93de1b0c
|
@ -20,6 +20,15 @@ fsevents/test/**
|
||||||
@vscode/spdlog/*.yml
|
@vscode/spdlog/*.yml
|
||||||
!@vscode/spdlog/build/Release/*.node
|
!@vscode/spdlog/build/Release/*.node
|
||||||
|
|
||||||
|
@vscode/deviceid/binding.gyp
|
||||||
|
@vscode/deviceid/build/**
|
||||||
|
@vscode/deviceid/deps/**
|
||||||
|
@vscode/deviceid/src/**
|
||||||
|
@vscode/deviceid/test/**
|
||||||
|
@vscode/deviceid/*.yml
|
||||||
|
!@vscode/deviceid/build/Release/*.node
|
||||||
|
|
||||||
|
|
||||||
@vscode/sqlite3/binding.gyp
|
@vscode/sqlite3/binding.gyp
|
||||||
@vscode/sqlite3/benchmark/**
|
@vscode/sqlite3/benchmark/**
|
||||||
@vscode/sqlite3/cloudformation/**
|
@vscode/sqlite3/cloudformation/**
|
||||||
|
|
|
@ -115,7 +115,7 @@ export async function getSqmMachineId(errorLogger: (error: any) => void): Promis
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getVSDeviceId(errorLogger: (error: any) => void): Promise<string> {
|
export async function getdevDeviceId(errorLogger: (error: any) => void): Promise<string> {
|
||||||
try {
|
try {
|
||||||
const deviceIdPackage = await import('@vscode/deviceid');
|
const deviceIdPackage = await import('@vscode/deviceid');
|
||||||
const id = await deviceIdPackage.getDeviceId();
|
const id = await deviceIdPackage.getDeviceId();
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import * as assert from 'assert';
|
import * as assert from 'assert';
|
||||||
import { getMachineId, getSqmMachineId, getVSDeviceId } from 'vs/base/node/id';
|
import { getMachineId, getSqmMachineId, getdevDeviceId } from 'vs/base/node/id';
|
||||||
import { getMac } from 'vs/base/node/macAddress';
|
import { getMac } from 'vs/base/node/macAddress';
|
||||||
import { flakySuite } from 'vs/base/test/node/testUtils';
|
import { flakySuite } from 'vs/base/test/node/testUtils';
|
||||||
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
|
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
|
||||||
|
@ -26,9 +26,9 @@ flakySuite('ID', () => {
|
||||||
assert.strictEqual(errors.length, 0);
|
assert.strictEqual(errors.length, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('getVSDeviceId', async function () {
|
test('getdevDeviceId', async function () {
|
||||||
const errors = [];
|
const errors = [];
|
||||||
const id = await getVSDeviceId(err => errors.push(err));
|
const id = await getdevDeviceId(err => errors.push(err));
|
||||||
assert.ok(typeof id === 'string');
|
assert.ok(typeof id === 'string');
|
||||||
assert.strictEqual(errors.length, 0);
|
assert.strictEqual(errors.length, 0);
|
||||||
});
|
});
|
||||||
|
|
|
@ -105,7 +105,7 @@ import { ExtensionsScannerService } from 'vs/platform/extensionManagement/node/e
|
||||||
import { UserDataProfilesHandler } from 'vs/platform/userDataProfile/electron-main/userDataProfilesHandler';
|
import { UserDataProfilesHandler } from 'vs/platform/userDataProfile/electron-main/userDataProfilesHandler';
|
||||||
import { ProfileStorageChangesListenerChannel } from 'vs/platform/userDataProfile/electron-main/userDataProfileStorageIpc';
|
import { ProfileStorageChangesListenerChannel } from 'vs/platform/userDataProfile/electron-main/userDataProfileStorageIpc';
|
||||||
import { Promises, RunOnceScheduler, runWhenGlobalIdle } from 'vs/base/common/async';
|
import { Promises, RunOnceScheduler, runWhenGlobalIdle } from 'vs/base/common/async';
|
||||||
import { resolveMachineId, resolveSqmId, resolveVSDeviceId } from 'vs/platform/telemetry/electron-main/telemetryUtils';
|
import { resolveMachineId, resolveSqmId, resolvedevDeviceId } from 'vs/platform/telemetry/electron-main/telemetryUtils';
|
||||||
import { ExtensionsProfileScannerService } from 'vs/platform/extensionManagement/node/extensionsProfileScannerService';
|
import { ExtensionsProfileScannerService } from 'vs/platform/extensionManagement/node/extensionsProfileScannerService';
|
||||||
import { LoggerChannel } from 'vs/platform/log/electron-main/logIpc';
|
import { LoggerChannel } from 'vs/platform/log/electron-main/logIpc';
|
||||||
import { ILoggerMainService } from 'vs/platform/log/electron-main/loggerService';
|
import { ILoggerMainService } from 'vs/platform/log/electron-main/loggerService';
|
||||||
|
@ -611,18 +611,18 @@ export class CodeApplication extends Disposable {
|
||||||
|
|
||||||
// Resolve unique machine ID
|
// Resolve unique machine ID
|
||||||
this.logService.trace('Resolving machine identifier...');
|
this.logService.trace('Resolving machine identifier...');
|
||||||
const [machineId, sqmId, vsDeviceId] = await Promise.all([
|
const [machineId, sqmId, devDeviceId] = await Promise.all([
|
||||||
resolveMachineId(this.stateService, this.logService),
|
resolveMachineId(this.stateService, this.logService),
|
||||||
resolveSqmId(this.stateService, this.logService),
|
resolveSqmId(this.stateService, this.logService),
|
||||||
resolveVSDeviceId(this.stateService, this.logService)
|
resolvedevDeviceId(this.stateService, this.logService)
|
||||||
]);
|
]);
|
||||||
this.logService.trace(`Resolved machine identifier: ${machineId}`);
|
this.logService.trace(`Resolved machine identifier: ${machineId}`);
|
||||||
|
|
||||||
// Shared process
|
// Shared process
|
||||||
const { sharedProcessReady, sharedProcessClient } = this.setupSharedProcess(machineId, sqmId, vsDeviceId);
|
const { sharedProcessReady, sharedProcessClient } = this.setupSharedProcess(machineId, sqmId, devDeviceId);
|
||||||
|
|
||||||
// Services
|
// Services
|
||||||
const appInstantiationService = await this.initServices(machineId, sqmId, vsDeviceId, sharedProcessReady);
|
const appInstantiationService = await this.initServices(machineId, sqmId, devDeviceId, sharedProcessReady);
|
||||||
|
|
||||||
// Auth Handler
|
// Auth Handler
|
||||||
this._register(appInstantiationService.createInstance(ProxyAuthHandler));
|
this._register(appInstantiationService.createInstance(ProxyAuthHandler));
|
||||||
|
@ -987,8 +987,8 @@ export class CodeApplication extends Disposable {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private setupSharedProcess(machineId: string, sqmId: string, vsDeviceId: string): { sharedProcessReady: Promise<MessagePortClient>; sharedProcessClient: Promise<MessagePortClient> } {
|
private setupSharedProcess(machineId: string, sqmId: string, devDeviceId: string): { sharedProcessReady: Promise<MessagePortClient>; sharedProcessClient: Promise<MessagePortClient> } {
|
||||||
const sharedProcess = this._register(this.mainInstantiationService.createInstance(SharedProcess, machineId, sqmId, vsDeviceId));
|
const sharedProcess = this._register(this.mainInstantiationService.createInstance(SharedProcess, machineId, sqmId, devDeviceId));
|
||||||
|
|
||||||
this._register(sharedProcess.onDidCrash(() => this.windowsMainService?.sendToFocused('vscode:reportSharedProcessCrash')));
|
this._register(sharedProcess.onDidCrash(() => this.windowsMainService?.sendToFocused('vscode:reportSharedProcessCrash')));
|
||||||
|
|
||||||
|
@ -1011,7 +1011,7 @@ export class CodeApplication extends Disposable {
|
||||||
return { sharedProcessReady, sharedProcessClient };
|
return { sharedProcessReady, sharedProcessClient };
|
||||||
}
|
}
|
||||||
|
|
||||||
private async initServices(machineId: string, sqmId: string, vsDeviceId: string, sharedProcessReady: Promise<MessagePortClient>): Promise<IInstantiationService> {
|
private async initServices(machineId: string, sqmId: string, devDeviceId: string, sharedProcessReady: Promise<MessagePortClient>): Promise<IInstantiationService> {
|
||||||
const services = new ServiceCollection();
|
const services = new ServiceCollection();
|
||||||
|
|
||||||
// Update
|
// Update
|
||||||
|
@ -1034,7 +1034,7 @@ export class CodeApplication extends Disposable {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Windows
|
// Windows
|
||||||
services.set(IWindowsMainService, new SyncDescriptor(WindowsMainService, [machineId, sqmId, vsDeviceId, this.userEnv], false));
|
services.set(IWindowsMainService, new SyncDescriptor(WindowsMainService, [machineId, sqmId, devDeviceId, this.userEnv], false));
|
||||||
services.set(IAuxiliaryWindowsMainService, new SyncDescriptor(AuxiliaryWindowsMainService, undefined, false));
|
services.set(IAuxiliaryWindowsMainService, new SyncDescriptor(AuxiliaryWindowsMainService, undefined, false));
|
||||||
|
|
||||||
// Dialogs
|
// Dialogs
|
||||||
|
@ -1114,7 +1114,7 @@ export class CodeApplication extends Disposable {
|
||||||
const isInternal = isInternalTelemetry(this.productService, this.configurationService);
|
const isInternal = isInternalTelemetry(this.productService, this.configurationService);
|
||||||
const channel = getDelayedChannel(sharedProcessReady.then(client => client.getChannel('telemetryAppender')));
|
const channel = getDelayedChannel(sharedProcessReady.then(client => client.getChannel('telemetryAppender')));
|
||||||
const appender = new TelemetryAppenderClient(channel);
|
const appender = new TelemetryAppenderClient(channel);
|
||||||
const commonProperties = resolveCommonProperties(release(), hostname(), process.arch, this.productService.commit, this.productService.version, machineId, sqmId, vsDeviceId, isInternal);
|
const commonProperties = resolveCommonProperties(release(), hostname(), process.arch, this.productService.commit, this.productService.version, machineId, sqmId, devDeviceId, isInternal);
|
||||||
const piiPaths = getPiiPathsFromEnvironment(this.environmentMainService);
|
const piiPaths = getPiiPathsFromEnvironment(this.environmentMainService);
|
||||||
const config: ITelemetryServiceConfig = { appenders: [appender], commonProperties, piiPaths, sendErrorTelemetry: true };
|
const config: ITelemetryServiceConfig = { appenders: [appender], commonProperties, piiPaths, sendErrorTelemetry: true };
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'
|
||||||
import { UriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentityService';
|
import { UriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentityService';
|
||||||
import { IUserDataProfile, IUserDataProfilesService } from 'vs/platform/userDataProfile/common/userDataProfile';
|
import { IUserDataProfile, IUserDataProfilesService } from 'vs/platform/userDataProfile/common/userDataProfile';
|
||||||
import { UserDataProfilesReadonlyService } from 'vs/platform/userDataProfile/node/userDataProfile';
|
import { UserDataProfilesReadonlyService } from 'vs/platform/userDataProfile/node/userDataProfile';
|
||||||
import { resolveMachineId, resolveSqmId, resolveVSDeviceId } from 'vs/platform/telemetry/node/telemetryUtils';
|
import { resolveMachineId, resolveSqmId, resolvedevDeviceId } from 'vs/platform/telemetry/node/telemetryUtils';
|
||||||
import { ExtensionsProfileScannerService } from 'vs/platform/extensionManagement/node/extensionsProfileScannerService';
|
import { ExtensionsProfileScannerService } from 'vs/platform/extensionManagement/node/extensionsProfileScannerService';
|
||||||
import { LogService } from 'vs/platform/log/common/logService';
|
import { LogService } from 'vs/platform/log/common/logService';
|
||||||
import { LoggerService } from 'vs/platform/log/node/loggerService';
|
import { LoggerService } from 'vs/platform/log/node/loggerService';
|
||||||
|
@ -186,7 +186,7 @@ class CliMain extends Disposable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const sqmId = await resolveSqmId(stateService, logService);
|
const sqmId = await resolveSqmId(stateService, logService);
|
||||||
const vsDeviceId = await resolveVSDeviceId(stateService, logService);
|
const devDeviceId = await resolvedevDeviceId(stateService, logService);
|
||||||
|
|
||||||
// Initialize user data profiles after initializing the state
|
// Initialize user data profiles after initializing the state
|
||||||
userDataProfilesService.init();
|
userDataProfilesService.init();
|
||||||
|
@ -222,7 +222,7 @@ class CliMain extends Disposable {
|
||||||
const config: ITelemetryServiceConfig = {
|
const config: ITelemetryServiceConfig = {
|
||||||
appenders,
|
appenders,
|
||||||
sendErrorTelemetry: false,
|
sendErrorTelemetry: false,
|
||||||
commonProperties: resolveCommonProperties(release(), hostname(), process.arch, productService.commit, productService.version, machineId, sqmId, vsDeviceId, isInternal),
|
commonProperties: resolveCommonProperties(release(), hostname(), process.arch, productService.commit, productService.version, machineId, sqmId, devDeviceId, isInternal),
|
||||||
piiPaths: getPiiPathsFromEnvironment(environmentService)
|
piiPaths: getPiiPathsFromEnvironment(environmentService)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -307,7 +307,7 @@ class SharedProcessMain extends Disposable implements IClientConnectionFilter {
|
||||||
|
|
||||||
telemetryService = new TelemetryService({
|
telemetryService = new TelemetryService({
|
||||||
appenders,
|
appenders,
|
||||||
commonProperties: resolveCommonProperties(release(), hostname(), process.arch, productService.commit, productService.version, this.configuration.machineId, this.configuration.sqmId, this.configuration.vsDeviceId, internalTelemetry),
|
commonProperties: resolveCommonProperties(release(), hostname(), process.arch, productService.commit, productService.version, this.configuration.machineId, this.configuration.sqmId, this.configuration.devDeviceId, internalTelemetry),
|
||||||
sendErrorTelemetry: true,
|
sendErrorTelemetry: true,
|
||||||
piiPaths: getPiiPathsFromEnvironment(environmentService),
|
piiPaths: getPiiPathsFromEnvironment(environmentService),
|
||||||
}, configurationService, productService);
|
}, configurationService, productService);
|
||||||
|
|
|
@ -792,7 +792,7 @@ class StandaloneTelemetryService implements ITelemetryService {
|
||||||
readonly sessionId = 'someValue.sessionId';
|
readonly sessionId = 'someValue.sessionId';
|
||||||
readonly machineId = 'someValue.machineId';
|
readonly machineId = 'someValue.machineId';
|
||||||
readonly sqmId = 'someValue.sqmId';
|
readonly sqmId = 'someValue.sqmId';
|
||||||
readonly vsDeviceId = 'someValue.vsDeviceId';
|
readonly devDeviceId = 'someValue.devDeviceId';
|
||||||
readonly firstSessionDate = 'someValue.firstSessionDate';
|
readonly firstSessionDate = 'someValue.firstSessionDate';
|
||||||
readonly sendErrorTelemetry = false;
|
readonly sendErrorTelemetry = false;
|
||||||
setEnabled(): void { }
|
setEnabled(): void { }
|
||||||
|
|
|
@ -34,7 +34,7 @@ export class SharedProcess extends Disposable {
|
||||||
constructor(
|
constructor(
|
||||||
private readonly machineId: string,
|
private readonly machineId: string,
|
||||||
private readonly sqmId: string,
|
private readonly sqmId: string,
|
||||||
private readonly vsDeviceId: string,
|
private readonly devDeviceId: string,
|
||||||
@IEnvironmentMainService private readonly environmentMainService: IEnvironmentMainService,
|
@IEnvironmentMainService private readonly environmentMainService: IEnvironmentMainService,
|
||||||
@IUserDataProfilesService private readonly userDataProfilesService: IUserDataProfilesService,
|
@IUserDataProfilesService private readonly userDataProfilesService: IUserDataProfilesService,
|
||||||
@ILifecycleMainService private readonly lifecycleMainService: ILifecycleMainService,
|
@ILifecycleMainService private readonly lifecycleMainService: ILifecycleMainService,
|
||||||
|
@ -181,7 +181,7 @@ export class SharedProcess extends Disposable {
|
||||||
return {
|
return {
|
||||||
machineId: this.machineId,
|
machineId: this.machineId,
|
||||||
sqmId: this.sqmId,
|
sqmId: this.sqmId,
|
||||||
vsDeviceId: this.vsDeviceId,
|
devDeviceId: this.devDeviceId,
|
||||||
codeCachePath: this.environmentMainService.codeCachePath,
|
codeCachePath: this.environmentMainService.codeCachePath,
|
||||||
profiles: {
|
profiles: {
|
||||||
home: this.userDataProfilesService.profilesHome,
|
home: this.userDataProfilesService.profilesHome,
|
||||||
|
|
|
@ -15,7 +15,7 @@ export interface ISharedProcessConfiguration {
|
||||||
|
|
||||||
readonly sqmId: string;
|
readonly sqmId: string;
|
||||||
|
|
||||||
readonly vsDeviceId: string;
|
readonly devDeviceId: string;
|
||||||
|
|
||||||
readonly codeCachePath: string | undefined;
|
readonly codeCachePath: string | undefined;
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ export function resolveCommonProperties(
|
||||||
version: string | undefined,
|
version: string | undefined,
|
||||||
machineId: string | undefined,
|
machineId: string | undefined,
|
||||||
sqmId: string | undefined,
|
sqmId: string | undefined,
|
||||||
vsDeviceId: string | undefined,
|
devDeviceId: string | undefined,
|
||||||
isInternalTelemetry: boolean,
|
isInternalTelemetry: boolean,
|
||||||
product?: string
|
product?: string
|
||||||
): ICommonProperties {
|
): ICommonProperties {
|
||||||
|
@ -34,8 +34,8 @@ export function resolveCommonProperties(
|
||||||
result['common.machineId'] = machineId;
|
result['common.machineId'] = machineId;
|
||||||
// __GDPR__COMMON__ "common.sqmId" : { "endPoint": "SqmMachineId", "classification": "EndUserPseudonymizedInformation", "purpose": "BusinessInsight" }
|
// __GDPR__COMMON__ "common.sqmId" : { "endPoint": "SqmMachineId", "classification": "EndUserPseudonymizedInformation", "purpose": "BusinessInsight" }
|
||||||
result['common.sqmId'] = sqmId;
|
result['common.sqmId'] = sqmId;
|
||||||
// __GDPR__COMMON__ "common.vsDeviceId" : { "endPoint": "SqmMachineId", "classification": "EndUserPseudonymizedInformation", "purpose": "BusinessInsight" }
|
// __GDPR__COMMON__ "common.devDeviceId" : { "endPoint": "SqmMachineId", "classification": "EndUserPseudonymizedInformation", "purpose": "BusinessInsight" }
|
||||||
result['common.vsDeviceId'] = vsDeviceId;
|
result['common.devDeviceId'] = devDeviceId;
|
||||||
// __GDPR__COMMON__ "sessionID" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
// __GDPR__COMMON__ "sessionID" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
|
||||||
result['sessionID'] = generateUuid() + Date.now();
|
result['sessionID'] = generateUuid() + Date.now();
|
||||||
// __GDPR__COMMON__ "commitHash" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }
|
// __GDPR__COMMON__ "commitHash" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }
|
||||||
|
|
|
@ -23,7 +23,7 @@ export interface ITelemetryService {
|
||||||
readonly sessionId: string;
|
readonly sessionId: string;
|
||||||
readonly machineId: string;
|
readonly machineId: string;
|
||||||
readonly sqmId: string;
|
readonly sqmId: string;
|
||||||
readonly vsDeviceId: string;
|
readonly devDeviceId: string;
|
||||||
readonly firstSessionDate: string;
|
readonly firstSessionDate: string;
|
||||||
readonly msftInternal?: boolean;
|
readonly msftInternal?: boolean;
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ export const firstSessionDateStorageKey = 'telemetry.firstSessionDate';
|
||||||
export const lastSessionDateStorageKey = 'telemetry.lastSessionDate';
|
export const lastSessionDateStorageKey = 'telemetry.lastSessionDate';
|
||||||
export const machineIdKey = 'telemetry.machineId';
|
export const machineIdKey = 'telemetry.machineId';
|
||||||
export const sqmIdKey = 'telemetry.sqmId';
|
export const sqmIdKey = 'telemetry.sqmId';
|
||||||
export const vsDeviceIdKey = 'telemetry.vsDeviceId';
|
export const devDeviceIdKey = 'telemetry.devDeviceId';
|
||||||
|
|
||||||
// Configuration Keys
|
// Configuration Keys
|
||||||
export const TELEMETRY_SECTION_ID = 'telemetry';
|
export const TELEMETRY_SECTION_ID = 'telemetry';
|
||||||
|
|
|
@ -34,7 +34,7 @@ export class TelemetryService implements ITelemetryService {
|
||||||
readonly sessionId: string;
|
readonly sessionId: string;
|
||||||
readonly machineId: string;
|
readonly machineId: string;
|
||||||
readonly sqmId: string;
|
readonly sqmId: string;
|
||||||
readonly vsDeviceId: string;
|
readonly devDeviceId: string;
|
||||||
readonly firstSessionDate: string;
|
readonly firstSessionDate: string;
|
||||||
readonly msftInternal: boolean | undefined;
|
readonly msftInternal: boolean | undefined;
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ export class TelemetryService implements ITelemetryService {
|
||||||
this.sessionId = this._commonProperties['sessionID'] as string;
|
this.sessionId = this._commonProperties['sessionID'] as string;
|
||||||
this.machineId = this._commonProperties['common.machineId'] as string;
|
this.machineId = this._commonProperties['common.machineId'] as string;
|
||||||
this.sqmId = this._commonProperties['common.sqmId'] as string;
|
this.sqmId = this._commonProperties['common.sqmId'] as string;
|
||||||
this.vsDeviceId = this._commonProperties['common.vsDeviceId'] as string;
|
this.devDeviceId = this._commonProperties['common.devDeviceId'] as string;
|
||||||
this.firstSessionDate = this._commonProperties['common.firstSessionDate'] as string;
|
this.firstSessionDate = this._commonProperties['common.firstSessionDate'] as string;
|
||||||
this.msftInternal = this._commonProperties['common.msftInternal'] as boolean | undefined;
|
this.msftInternal = this._commonProperties['common.msftInternal'] as boolean | undefined;
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ export class NullTelemetryServiceShape implements ITelemetryService {
|
||||||
readonly sessionId = 'someValue.sessionId';
|
readonly sessionId = 'someValue.sessionId';
|
||||||
readonly machineId = 'someValue.machineId';
|
readonly machineId = 'someValue.machineId';
|
||||||
readonly sqmId = 'someValue.sqmId';
|
readonly sqmId = 'someValue.sqmId';
|
||||||
readonly vsDeviceId = 'someValue.vsDeviceId';
|
readonly devDeviceId = 'someValue.devDeviceId';
|
||||||
readonly firstSessionDate = 'someValue.firstSessionDate';
|
readonly firstSessionDate = 'someValue.firstSessionDate';
|
||||||
readonly sendErrorTelemetry = false;
|
readonly sendErrorTelemetry = false;
|
||||||
publicLog() { }
|
publicLog() { }
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
|
|
||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { IStateService } from 'vs/platform/state/node/state';
|
import { IStateService } from 'vs/platform/state/node/state';
|
||||||
import { machineIdKey, sqmIdKey, vsDeviceIdKey } from 'vs/platform/telemetry/common/telemetry';
|
import { machineIdKey, sqmIdKey, devDeviceIdKey } from 'vs/platform/telemetry/common/telemetry';
|
||||||
import { resolveMachineId as resolveNodeMachineId, resolveSqmId as resolveNodeSqmId, resolveVSDeviceId as resolveNodeVSDeviceId } from 'vs/platform/telemetry/node/telemetryUtils';
|
import { resolveMachineId as resolveNodeMachineId, resolveSqmId as resolveNodeSqmId, resolvedevDeviceId as resolveNodedevDeviceId } from 'vs/platform/telemetry/node/telemetryUtils';
|
||||||
|
|
||||||
export async function resolveMachineId(stateService: IStateService, logService: ILogService): Promise<string> {
|
export async function resolveMachineId(stateService: IStateService, logService: ILogService): Promise<string> {
|
||||||
// Call the node layers implementation to avoid code duplication
|
// Call the node layers implementation to avoid code duplication
|
||||||
|
@ -21,8 +21,8 @@ export async function resolveSqmId(stateService: IStateService, logService: ILog
|
||||||
return sqmId;
|
return sqmId;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function resolveVSDeviceId(stateService: IStateService, logService: ILogService): Promise<string> {
|
export async function resolvedevDeviceId(stateService: IStateService, logService: ILogService): Promise<string> {
|
||||||
const vsDeviceId = await resolveNodeVSDeviceId(stateService, logService);
|
const devDeviceId = await resolveNodedevDeviceId(stateService, logService);
|
||||||
stateService.setItem(vsDeviceIdKey, vsDeviceId);
|
stateService.setItem(devDeviceIdKey, devDeviceId);
|
||||||
return vsDeviceId;
|
return devDeviceId;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import { isMacintosh } from 'vs/base/common/platform';
|
import { isMacintosh } from 'vs/base/common/platform';
|
||||||
import { getMachineId, getSqmMachineId, getVSDeviceId } from 'vs/base/node/id';
|
import { getMachineId, getSqmMachineId, getdevDeviceId } from 'vs/base/node/id';
|
||||||
import { ILogService } from 'vs/platform/log/common/log';
|
import { ILogService } from 'vs/platform/log/common/log';
|
||||||
import { IStateReadService } from 'vs/platform/state/node/state';
|
import { IStateReadService } from 'vs/platform/state/node/state';
|
||||||
import { machineIdKey, sqmIdKey, vsDeviceIdKey } from 'vs/platform/telemetry/common/telemetry';
|
import { machineIdKey, sqmIdKey, devDeviceIdKey } from 'vs/platform/telemetry/common/telemetry';
|
||||||
|
|
||||||
|
|
||||||
export async function resolveMachineId(stateService: IStateReadService, logService: ILogService): Promise<string> {
|
export async function resolveMachineId(stateService: IStateReadService, logService: ILogService): Promise<string> {
|
||||||
|
@ -30,11 +30,11 @@ export async function resolveSqmId(stateService: IStateReadService, logService:
|
||||||
return sqmId;
|
return sqmId;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function resolveVSDeviceId(stateService: IStateReadService, logService: ILogService): Promise<string> {
|
export async function resolvedevDeviceId(stateService: IStateReadService, logService: ILogService): Promise<string> {
|
||||||
let vsDeviceId = stateService.getItem<string>(vsDeviceIdKey);
|
let devDeviceId = stateService.getItem<string>(devDeviceIdKey);
|
||||||
if (typeof vsDeviceId !== 'string') {
|
if (typeof devDeviceId !== 'string') {
|
||||||
vsDeviceId = await getVSDeviceId(logService.error.bind(logService));
|
devDeviceId = await getdevDeviceId(logService.error.bind(logService));
|
||||||
}
|
}
|
||||||
|
|
||||||
return vsDeviceId;
|
return devDeviceId;
|
||||||
}
|
}
|
||||||
|
|
|
@ -348,7 +348,7 @@ export interface INativeWindowConfiguration extends IWindowConfiguration, Native
|
||||||
|
|
||||||
machineId: string;
|
machineId: string;
|
||||||
sqmId: string;
|
sqmId: string;
|
||||||
vsDeviceId: string;
|
devDeviceId: string;
|
||||||
|
|
||||||
execPath: string;
|
execPath: string;
|
||||||
backupPath?: string;
|
backupPath?: string;
|
||||||
|
|
|
@ -211,7 +211,7 @@ export class WindowsMainService extends Disposable implements IWindowsMainServic
|
||||||
constructor(
|
constructor(
|
||||||
private readonly machineId: string,
|
private readonly machineId: string,
|
||||||
private readonly sqmId: string,
|
private readonly sqmId: string,
|
||||||
private readonly vsDeviceId: string,
|
private readonly devDeviceId: string,
|
||||||
private readonly initialUserEnv: IProcessEnvironment,
|
private readonly initialUserEnv: IProcessEnvironment,
|
||||||
@ILogService private readonly logService: ILogService,
|
@ILogService private readonly logService: ILogService,
|
||||||
@ILoggerMainService private readonly loggerService: ILoggerMainService,
|
@ILoggerMainService private readonly loggerService: ILoggerMainService,
|
||||||
|
@ -1410,7 +1410,7 @@ export class WindowsMainService extends Disposable implements IWindowsMainServic
|
||||||
|
|
||||||
machineId: this.machineId,
|
machineId: this.machineId,
|
||||||
sqmId: this.sqmId,
|
sqmId: this.sqmId,
|
||||||
vsDeviceId: this.vsDeviceId,
|
devDeviceId: this.devDeviceId,
|
||||||
|
|
||||||
windowId: -1, // Will be filled in by the window once loaded later
|
windowId: -1, // Will be filled in by the window once loaded later
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import { DisposableStore, toDisposable } from 'vs/base/common/lifecycle';
|
||||||
import { Schemas } from 'vs/base/common/network';
|
import { Schemas } from 'vs/base/common/network';
|
||||||
import * as path from 'vs/base/common/path';
|
import * as path from 'vs/base/common/path';
|
||||||
import { IURITransformer } from 'vs/base/common/uriIpc';
|
import { IURITransformer } from 'vs/base/common/uriIpc';
|
||||||
import { getMachineId, getSqmMachineId, getVSDeviceId } from 'vs/base/node/id';
|
import { getMachineId, getSqmMachineId, getdevDeviceId } from 'vs/base/node/id';
|
||||||
import { Promises } from 'vs/base/node/pfs';
|
import { Promises } from 'vs/base/node/pfs';
|
||||||
import { ClientConnectionEvent, IMessagePassingProtocol, IPCServer, StaticRouter } from 'vs/base/parts/ipc/common/ipc';
|
import { ClientConnectionEvent, IMessagePassingProtocol, IPCServer, StaticRouter } from 'vs/base/parts/ipc/common/ipc';
|
||||||
import { ProtocolConstants } from 'vs/base/parts/ipc/common/ipc.net';
|
import { ProtocolConstants } from 'vs/base/parts/ipc/common/ipc.net';
|
||||||
|
@ -132,12 +132,12 @@ export async function setupServerServices(connectionToken: ServerConnectionToken
|
||||||
socketServer.registerChannel('userDataProfiles', new RemoteUserDataProfilesServiceChannel(userDataProfilesService, (ctx: RemoteAgentConnectionContext) => getUriTransformer(ctx.remoteAuthority)));
|
socketServer.registerChannel('userDataProfiles', new RemoteUserDataProfilesServiceChannel(userDataProfilesService, (ctx: RemoteAgentConnectionContext) => getUriTransformer(ctx.remoteAuthority)));
|
||||||
|
|
||||||
// Initialize
|
// Initialize
|
||||||
const [, , machineId, sqmId, vsDeviceId] = await Promise.all([
|
const [, , machineId, sqmId, devDeviceId] = await Promise.all([
|
||||||
configurationService.initialize(),
|
configurationService.initialize(),
|
||||||
userDataProfilesService.init(),
|
userDataProfilesService.init(),
|
||||||
getMachineId(logService.error.bind(logService)),
|
getMachineId(logService.error.bind(logService)),
|
||||||
getSqmMachineId(logService.error.bind(logService)),
|
getSqmMachineId(logService.error.bind(logService)),
|
||||||
getVSDeviceId(logService.error.bind(logService))
|
getdevDeviceId(logService.error.bind(logService))
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const extensionHostStatusService = new ExtensionHostStatusService();
|
const extensionHostStatusService = new ExtensionHostStatusService();
|
||||||
|
@ -157,7 +157,7 @@ export async function setupServerServices(connectionToken: ServerConnectionToken
|
||||||
|
|
||||||
const config: ITelemetryServiceConfig = {
|
const config: ITelemetryServiceConfig = {
|
||||||
appenders: [oneDsAppender],
|
appenders: [oneDsAppender],
|
||||||
commonProperties: resolveCommonProperties(release(), hostname(), process.arch, productService.commit, productService.version + '-remote', machineId, sqmId, vsDeviceId, isInternal, 'remoteAgent'),
|
commonProperties: resolveCommonProperties(release(), hostname(), process.arch, productService.commit, productService.version + '-remote', machineId, sqmId, devDeviceId, isInternal, 'remoteAgent'),
|
||||||
piiPaths: getPiiPathsFromEnvironment(environmentService)
|
piiPaths: getPiiPathsFromEnvironment(environmentService)
|
||||||
};
|
};
|
||||||
const initialTelemetryLevelArg = environmentService.args['telemetry-level'];
|
const initialTelemetryLevelArg = environmentService.args['telemetry-level'];
|
||||||
|
|
|
@ -105,7 +105,7 @@ export class ExtHostTelemetry extends Disposable implements ExtHostTelemetryShap
|
||||||
commonProperties['common.vscodemachineid'] = this.initData.telemetryInfo.machineId;
|
commonProperties['common.vscodemachineid'] = this.initData.telemetryInfo.machineId;
|
||||||
commonProperties['common.vscodesessionid'] = this.initData.telemetryInfo.sessionId;
|
commonProperties['common.vscodesessionid'] = this.initData.telemetryInfo.sessionId;
|
||||||
commonProperties['common.sqmid'] = this.initData.telemetryInfo.sqmId;
|
commonProperties['common.sqmid'] = this.initData.telemetryInfo.sqmId;
|
||||||
commonProperties['common.vsdeviceid'] = this.initData.telemetryInfo.vsDeviceId;
|
commonProperties['common.devDeviceId'] = this.initData.telemetryInfo.devDeviceId;
|
||||||
commonProperties['common.vscodeversion'] = this.initData.version;
|
commonProperties['common.vscodeversion'] = this.initData.version;
|
||||||
commonProperties['common.isnewappinstall'] = isNewAppInstall(this.initData.telemetryInfo.firstSessionDate);
|
commonProperties['common.isnewappinstall'] = isNewAppInstall(this.initData.telemetryInfo.firstSessionDate);
|
||||||
commonProperties['common.product'] = this.initData.environment.appHost;
|
commonProperties['common.product'] = this.initData.environment.appHost;
|
||||||
|
|
|
@ -45,7 +45,7 @@ suite('ExtHostTelemetry', function () {
|
||||||
sessionId: 'test',
|
sessionId: 'test',
|
||||||
machineId: 'test',
|
machineId: 'test',
|
||||||
sqmId: 'test',
|
sqmId: 'test',
|
||||||
vsDeviceId: 'test'
|
devDeviceId: 'test'
|
||||||
};
|
};
|
||||||
|
|
||||||
const mockRemote = {
|
const mockRemote = {
|
||||||
|
|
|
@ -39,7 +39,7 @@ export interface INativeWorkbenchEnvironmentService extends IBrowserWorkbenchEnv
|
||||||
readonly os: IOSConfiguration;
|
readonly os: IOSConfiguration;
|
||||||
readonly machineId: string;
|
readonly machineId: string;
|
||||||
readonly sqmId: string;
|
readonly sqmId: string;
|
||||||
readonly vsDeviceId: string;
|
readonly devDeviceId: string;
|
||||||
|
|
||||||
// --- Paths
|
// --- Paths
|
||||||
readonly execPath: string;
|
readonly execPath: string;
|
||||||
|
@ -65,7 +65,7 @@ export class NativeWorkbenchEnvironmentService extends AbstractNativeEnvironment
|
||||||
get sqmId() { return this.configuration.sqmId; }
|
get sqmId() { return this.configuration.sqmId; }
|
||||||
|
|
||||||
@memoize
|
@memoize
|
||||||
get vsDeviceId() { return this.configuration.vsDeviceId; }
|
get devDeviceId() { return this.configuration.devDeviceId; }
|
||||||
|
|
||||||
@memoize
|
@memoize
|
||||||
get remoteAuthority() { return this.configuration.remoteAuthority; }
|
get remoteAuthority() { return this.configuration.remoteAuthority; }
|
||||||
|
|
|
@ -310,7 +310,7 @@ export class WebWorkerExtensionHost extends Disposable implements IExtensionHost
|
||||||
sessionId: this._telemetryService.sessionId,
|
sessionId: this._telemetryService.sessionId,
|
||||||
machineId: this._telemetryService.machineId,
|
machineId: this._telemetryService.machineId,
|
||||||
sqmId: this._telemetryService.sqmId,
|
sqmId: this._telemetryService.sqmId,
|
||||||
vsDeviceId: this._telemetryService.vsDeviceId,
|
devDeviceId: this._telemetryService.devDeviceId,
|
||||||
firstSessionDate: this._telemetryService.firstSessionDate,
|
firstSessionDate: this._telemetryService.firstSessionDate,
|
||||||
msftInternal: this._telemetryService.msftInternal
|
msftInternal: this._telemetryService.msftInternal
|
||||||
},
|
},
|
||||||
|
|
|
@ -41,7 +41,7 @@ export interface IExtensionHostInitData {
|
||||||
readonly sessionId: string;
|
readonly sessionId: string;
|
||||||
readonly machineId: string;
|
readonly machineId: string;
|
||||||
readonly sqmId: string;
|
readonly sqmId: string;
|
||||||
readonly vsDeviceId: string;
|
readonly devDeviceId: string;
|
||||||
readonly firstSessionDate: string;
|
readonly firstSessionDate: string;
|
||||||
readonly msftInternal?: boolean;
|
readonly msftInternal?: boolean;
|
||||||
};
|
};
|
||||||
|
|
|
@ -244,7 +244,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost {
|
||||||
sessionId: this._telemetryService.sessionId,
|
sessionId: this._telemetryService.sessionId,
|
||||||
machineId: this._telemetryService.machineId,
|
machineId: this._telemetryService.machineId,
|
||||||
sqmId: this._telemetryService.sqmId,
|
sqmId: this._telemetryService.sqmId,
|
||||||
vsDeviceId: this._telemetryService.vsDeviceId,
|
devDeviceId: this._telemetryService.devDeviceId,
|
||||||
firstSessionDate: this._telemetryService.firstSessionDate,
|
firstSessionDate: this._telemetryService.firstSessionDate,
|
||||||
msftInternal: this._telemetryService.msftInternal
|
msftInternal: this._telemetryService.msftInternal
|
||||||
},
|
},
|
||||||
|
|
|
@ -503,7 +503,7 @@ export class NativeLocalProcessExtensionHost implements IExtensionHost {
|
||||||
sessionId: this._telemetryService.sessionId,
|
sessionId: this._telemetryService.sessionId,
|
||||||
machineId: this._telemetryService.machineId,
|
machineId: this._telemetryService.machineId,
|
||||||
sqmId: this._telemetryService.sqmId,
|
sqmId: this._telemetryService.sqmId,
|
||||||
vsDeviceId: this._telemetryService.vsDeviceId,
|
devDeviceId: this._telemetryService.devDeviceId,
|
||||||
firstSessionDate: this._telemetryService.firstSessionDate,
|
firstSessionDate: this._telemetryService.firstSessionDate,
|
||||||
msftInternal: this._telemetryService.msftInternal
|
msftInternal: this._telemetryService.msftInternal
|
||||||
},
|
},
|
||||||
|
|
|
@ -29,7 +29,7 @@ export class TelemetryService extends Disposable implements ITelemetryService {
|
||||||
get sessionId(): string { return this.impl.sessionId; }
|
get sessionId(): string { return this.impl.sessionId; }
|
||||||
get machineId(): string { return this.impl.machineId; }
|
get machineId(): string { return this.impl.machineId; }
|
||||||
get sqmId(): string { return this.impl.sqmId; }
|
get sqmId(): string { return this.impl.sqmId; }
|
||||||
get vsDeviceId(): string { return this.impl.vsDeviceId; }
|
get devDeviceId(): string { return this.impl.devDeviceId; }
|
||||||
get firstSessionDate(): string { return this.impl.firstSessionDate; }
|
get firstSessionDate(): string { return this.impl.firstSessionDate; }
|
||||||
get msftInternal(): boolean | undefined { return this.impl.msftInternal; }
|
get msftInternal(): boolean | undefined { return this.impl.msftInternal; }
|
||||||
|
|
||||||
|
|
|
@ -17,12 +17,12 @@ export function resolveWorkbenchCommonProperties(
|
||||||
version: string | undefined,
|
version: string | undefined,
|
||||||
machineId: string,
|
machineId: string,
|
||||||
sqmId: string,
|
sqmId: string,
|
||||||
vsDeviceId: string,
|
devDeviceId: string,
|
||||||
isInternalTelemetry: boolean,
|
isInternalTelemetry: boolean,
|
||||||
process: INodeProcess,
|
process: INodeProcess,
|
||||||
remoteAuthority?: string
|
remoteAuthority?: string
|
||||||
): ICommonProperties {
|
): ICommonProperties {
|
||||||
const result = resolveCommonProperties(release, hostname, process.arch, commit, version, machineId, sqmId, vsDeviceId, isInternalTelemetry);
|
const result = resolveCommonProperties(release, hostname, process.arch, commit, version, machineId, sqmId, devDeviceId, isInternalTelemetry);
|
||||||
const firstSessionDate = storageService.get(firstSessionDateStorageKey, StorageScope.APPLICATION)!;
|
const firstSessionDate = storageService.get(firstSessionDateStorageKey, StorageScope.APPLICATION)!;
|
||||||
const lastSessionDate = storageService.get(lastSessionDateStorageKey, StorageScope.APPLICATION)!;
|
const lastSessionDate = storageService.get(lastSessionDateStorageKey, StorageScope.APPLICATION)!;
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ export class TelemetryService extends Disposable implements ITelemetryService {
|
||||||
get sessionId(): string { return this.impl.sessionId; }
|
get sessionId(): string { return this.impl.sessionId; }
|
||||||
get machineId(): string { return this.impl.machineId; }
|
get machineId(): string { return this.impl.machineId; }
|
||||||
get sqmId(): string { return this.impl.sqmId; }
|
get sqmId(): string { return this.impl.sqmId; }
|
||||||
get vsDeviceId(): string { return this.impl.vsDeviceId; }
|
get devDeviceId(): string { return this.impl.devDeviceId; }
|
||||||
get firstSessionDate(): string { return this.impl.firstSessionDate; }
|
get firstSessionDate(): string { return this.impl.firstSessionDate; }
|
||||||
get msftInternal(): boolean | undefined { return this.impl.msftInternal; }
|
get msftInternal(): boolean | undefined { return this.impl.msftInternal; }
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ export class TelemetryService extends Disposable implements ITelemetryService {
|
||||||
const channel = sharedProcessService.getChannel('telemetryAppender');
|
const channel = sharedProcessService.getChannel('telemetryAppender');
|
||||||
const config: ITelemetryServiceConfig = {
|
const config: ITelemetryServiceConfig = {
|
||||||
appenders: [new TelemetryAppenderClient(channel)],
|
appenders: [new TelemetryAppenderClient(channel)],
|
||||||
commonProperties: resolveWorkbenchCommonProperties(storageService, environmentService.os.release, environmentService.os.hostname, productService.commit, productService.version, environmentService.machineId, environmentService.sqmId, environmentService.vsDeviceId, isInternal, process, environmentService.remoteAuthority),
|
commonProperties: resolveWorkbenchCommonProperties(storageService, environmentService.os.release, environmentService.os.hostname, productService.commit, productService.version, environmentService.machineId, environmentService.sqmId, environmentService.devDeviceId, isInternal, process, environmentService.remoteAuthority),
|
||||||
piiPaths: getPiiPathsFromEnvironment(environmentService),
|
piiPaths: getPiiPathsFromEnvironment(environmentService),
|
||||||
sendErrorTelemetry: true
|
sendErrorTelemetry: true
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,7 +26,7 @@ suite('Telemetry - common properties', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('default', function () {
|
test('default', function () {
|
||||||
const props = resolveWorkbenchCommonProperties(testStorageService, release(), hostname(), commit, version, 'someMachineId', 'someSqmId', 'someVSDeviceId', false, process);
|
const props = resolveWorkbenchCommonProperties(testStorageService, release(), hostname(), commit, version, 'someMachineId', 'someSqmId', 'somedevDeviceId', false, process);
|
||||||
assert.ok('commitHash' in props);
|
assert.ok('commitHash' in props);
|
||||||
assert.ok('sessionID' in props);
|
assert.ok('sessionID' in props);
|
||||||
assert.ok('timestamp' in props);
|
assert.ok('timestamp' in props);
|
||||||
|
@ -50,14 +50,14 @@ suite('Telemetry - common properties', function () {
|
||||||
|
|
||||||
testStorageService.store('telemetry.lastSessionDate', new Date().toUTCString(), StorageScope.APPLICATION, StorageTarget.MACHINE);
|
testStorageService.store('telemetry.lastSessionDate', new Date().toUTCString(), StorageScope.APPLICATION, StorageTarget.MACHINE);
|
||||||
|
|
||||||
const props = resolveWorkbenchCommonProperties(testStorageService, release(), hostname(), commit, version, 'someMachineId', 'someSqmId', 'someVSDeviceId', false, process);
|
const props = resolveWorkbenchCommonProperties(testStorageService, release(), hostname(), commit, version, 'someMachineId', 'someSqmId', 'somedevDeviceId', false, process);
|
||||||
assert.ok('common.lastSessionDate' in props); // conditional, see below
|
assert.ok('common.lastSessionDate' in props); // conditional, see below
|
||||||
assert.ok('common.isNewSession' in props);
|
assert.ok('common.isNewSession' in props);
|
||||||
assert.strictEqual(props['common.isNewSession'], '0');
|
assert.strictEqual(props['common.isNewSession'], '0');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('values chance on ask', async function () {
|
test('values chance on ask', async function () {
|
||||||
const props = resolveWorkbenchCommonProperties(testStorageService, release(), hostname(), commit, version, 'someMachineId', 'someSqmId', 'someVSDeviceId', false, process);
|
const props = resolveWorkbenchCommonProperties(testStorageService, release(), hostname(), commit, version, 'someMachineId', 'someSqmId', 'somedevDeviceId', false, process);
|
||||||
let value1 = props['common.sequence'];
|
let value1 = props['common.sequence'];
|
||||||
let value2 = props['common.sequence'];
|
let value2 = props['common.sequence'];
|
||||||
assert.ok(value1 !== value2, 'seq');
|
assert.ok(value1 !== value2, 'seq');
|
||||||
|
|
|
@ -56,7 +56,7 @@ const TestNativeWindowConfiguration: INativeWindowConfiguration = {
|
||||||
windowId: 0,
|
windowId: 0,
|
||||||
machineId: 'testMachineId',
|
machineId: 'testMachineId',
|
||||||
sqmId: 'testSqmId',
|
sqmId: 'testSqmId',
|
||||||
vsDeviceId: 'testVSDeviceId',
|
devDeviceId: 'testdevDeviceId',
|
||||||
logLevel: LogLevel.Error,
|
logLevel: LogLevel.Error,
|
||||||
loggers: { global: [], window: [] },
|
loggers: { global: [], window: [] },
|
||||||
mainPid: 0,
|
mainPid: 0,
|
||||||
|
|
Loading…
Reference in a new issue