2
>
* Copyright (c) Microsoft Corporation. All rights reserved.
3
>
* Licensed under the MIT License. See License.txt in the project root for license information.
4
>
*--------------------------------------------------------------------------------------------*/
5
>
6
>
import { IStorageService, StorageScope } from '../../../../platform/storage/common/storage.js';
7
>
import { resolveCommonProperties } from '../../../../platform/telemetry/common/commonProperties.js';
8
>
import { ICommonProperties, firstSessionDateStorageKey, lastSessionDateStorageKey } from '../../../../platform/telemetry/common/telemetry.js';
9
>
import { cleanRemoteAuthority } from '../../../../platform/telemetry/common/telemetryUtils.js';
10
>
import { INodeProcess } from '../../../../base/common/platform.js';
11
>
import { IProductService } from '../../../../platform/product/common/productService.js';
12
>
import { IWorkbenchEnvironmentService } from '../../environment/common/environmentService.js';
13
>
14
>
export function resolveWorkbenchCommonProperties(
15
>
storageService: IStorageService,
16
>
productService: IProductService,
17
>
environmentService: IWorkbenchEnvironmentService,
18
>
release: string,
19
>
hostname: string,
20
>
machineId: string,
21
>
sqmId: string,
22
>
devDeviceId: string,
23
>
isInternalTelemetry: boolean,
24
>
process: INodeProcess,
25
>
): ICommonProperties {
26
>
const { commit, version, date: releaseDate } = productService ?? {};
27
>
const result = resolveCommonProperties(release, hostname, process.arch, commit, version, machineId, sqmId, devDeviceId, isInternalTelemetry, releaseDate);
28
>
const firstSessionDate = storageService.get(firstSessionDateStorageKey, StorageScope.APPLICATION)!;
29
>
const lastSessionDate = storageService.get(lastSessionDateStorageKey, StorageScope.APPLICATION)!;
30
>
31
>
// __GDPR__COMMON__ "common.version.shell" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }
32
>
result['common.version.shell'] = process.versions?.['electron'];
33
>
// __GDPR__COMMON__ "common.version.renderer" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }
34
>
result['common.version.renderer'] = process.versions?.['chrome'];
35
>
// __GDPR__COMMON__ "common.firstSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
36
>
result['common.firstSessionDate'] = firstSessionDate;
37
>
// __GDPR__COMMON__ "common.lastSessionDate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
38
>
result['common.lastSessionDate'] = lastSessionDate || '';
39
>
// __GDPR__COMMON__ "common.isNewSession" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
40
>
result['common.isNewSession'] = !lastSessionDate ? '1' : '0';
41
>
// __GDPR__COMMON__ "common.remoteAuthority" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }
42
>
result['common.remoteAuthority'] = cleanRemoteAuthority(environmentService.remoteAuthority, productService);
43
>
// __GDPR__COMMON__ "common.cli" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
44
>
result['common.cli'] = !!process.env['VSCODE_CLI'];
45
>
46
>
if (environmentService.isSessionsWindow) {
47
// __GDPR__COMMON__ "common.isAgentsWindow" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }
48
result['common.isAgentsWindow'] = true;
49
}
51
>
return result;
52
>
}