Merge VS Code 1.31.1 (#4283)

This commit is contained in:
Matt Irvine
2019-03-15 13:09:45 -07:00
committed by GitHub
parent 7d31575149
commit 86bac90001
1716 changed files with 53308 additions and 48375 deletions

View File

@@ -27,9 +27,9 @@ export interface ITelemetryService {
* Sends a telemetry event that has been privacy approved.
* Do not call this unless you have been given approval.
*/
publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Thenable<void>;
publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Promise<void>;
getTelemetryInfo(): Thenable<ITelemetryInfo>;
getTelemetryInfo(): Promise<ITelemetryInfo>;
isOptedIn: boolean;
}

View File

@@ -16,7 +16,7 @@ import { Registry } from 'vs/platform/registry/common/platform';
export interface ITelemetryServiceConfig {
appender: ITelemetryAppender;
commonProperties?: Thenable<{ [name: string]: any }>;
commonProperties?: Promise<{ [name: string]: any }>;
piiPaths?: string[];
}
@@ -28,7 +28,7 @@ export class TelemetryService implements ITelemetryService {
_serviceBrand: any;
private _appender: ITelemetryAppender;
private _commonProperties: Thenable<{ [name: string]: any; }>;
private _commonProperties: Promise<{ [name: string]: any; }>;
private _piiPaths: string[];
private _userOptIn: boolean;
@@ -60,6 +60,17 @@ export class TelemetryService implements ITelemetryService {
}
*/
this.publicLog('optInStatus', { optIn: this._userOptIn });
this._commonProperties.then(values => {
const isHashedId = /^[a-f0-9]+$/i.test(values['common.machineId']);
/* __GDPR__
"machineIdFallback" : {
"usingFallbackGuid" : { "classification": "SystemMetaData", "purpose": "BusinessInsight", "isMeasurement": true }
}
*/
this.publicLog('machineIdFallback', { usingFallbackGuid: !isHashedId });
});
}
}
@@ -72,7 +83,7 @@ export class TelemetryService implements ITelemetryService {
return this._userOptIn;
}
getTelemetryInfo(): Thenable<ITelemetryInfo> {
getTelemetryInfo(): Promise<ITelemetryInfo> {
return this._commonProperties.then(values => {
// well known properties
let sessionId = values['sessionID'];
@@ -87,7 +98,7 @@ export class TelemetryService implements ITelemetryService {
this._disposables = dispose(this._disposables);
}
publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Thenable<any> {
publicLog(eventName: string, data?: ITelemetryData, anonymizeFilePaths?: boolean): Promise<any> {
// don't send events when the user is optout
if (!this._userOptIn) {
return Promise.resolve(undefined);

View File

@@ -15,7 +15,7 @@ import { ILogService } from 'vs/platform/log/common/log';
export const NullTelemetryService = new class implements ITelemetryService {
_serviceBrand: undefined;
publicLog(eventName: string, data?: ITelemetryData) {
return Promise.resolve(void 0);
return Promise.resolve(undefined);
}
isOptedIn: true;
getTelemetryInfo(): Promise<ITelemetryInfo> {
@@ -29,7 +29,7 @@ export const NullTelemetryService = new class implements ITelemetryService {
export interface ITelemetryAppender {
log(eventName: string, data: any): void;
dispose(): Thenable<any>;
dispose(): Promise<any> | undefined;
}
export function combinedAppender(...appenders: ITelemetryAppender[]): ITelemetryAppender {