@@ -11,11 +11,12 @@ import { ILoggerService } from 'vs/platform/log/common/log';
1111import { IProductService } from 'vs/platform/product/common/productService' ;
1212import { IStorageService } from 'vs/platform/storage/common/storage' ;
1313import { OneDataSystemWebAppender } from 'vs/platform/telemetry/browser/1dsAppender' ;
14+ import { telemetryEndpointUrl } from 'vs/platform/telemetry/common/1dsAppender' ;
1415import { ClassifiedEvent , GDPRClassification , StrictPropertyCheck } from 'vs/platform/telemetry/common/gdprTypings' ;
1516import { ITelemetryData , ITelemetryInfo , ITelemetryService , TelemetryLevel } from 'vs/platform/telemetry/common/telemetry' ;
1617import { TelemetryLogAppender } from 'vs/platform/telemetry/common/telemetryLogAppender' ;
1718import { ITelemetryServiceConfig , TelemetryService as BaseTelemetryService } from 'vs/platform/telemetry/common/telemetryService' ;
18- import { isInternalTelemetry , ITelemetryAppender , NullTelemetryService , supportsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils' ;
19+ import { getTelemetryLevel , isInternalTelemetry , ITelemetryAppender , NullTelemetryService , supportsTelemetry } from 'vs/platform/telemetry/common/telemetryUtils' ;
1920import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService' ;
2021import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService' ;
2122import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/browser/workbenchCommonProperties' ;
@@ -49,8 +50,15 @@ export class TelemetryService extends Disposable implements ITelemetryService {
4950 commonProperties : resolveWorkbenchCommonProperties ( storageService , productService . commit , productService . version , isInternal , environmentService . remoteAuthority , productService . embedderIdentifier , productService . removeTelemetryMachineId , environmentService . options && environmentService . options . resolveCommonTelemetryProperties ) ,
5051 sendErrorTelemetry : this . sendErrorTelemetry ,
5152 } ;
52-
5353 this . impl = this . _register ( new BaseTelemetryService ( config , configurationService , productService ) ) ;
54+
55+ if ( getTelemetryLevel ( configurationService ) !== TelemetryLevel . NONE ) {
56+ // If we cannot fetch the endpoint it means it is down and we should not send any telemetry.
57+ // This is most likely due to ad blockers
58+ fetch ( telemetryEndpointUrl , { method : 'POST' } ) . catch ( err => {
59+ this . impl = NullTelemetryService ;
60+ } ) ;
61+ }
5462 } else {
5563 this . impl = NullTelemetryService ;
5664 }
0 commit comments