@@ -11,11 +11,12 @@ import { ILoggerService } from 'vs/platform/log/common/log';
11
11
import { IProductService } from 'vs/platform/product/common/productService' ;
12
12
import { IStorageService } from 'vs/platform/storage/common/storage' ;
13
13
import { OneDataSystemWebAppender } from 'vs/platform/telemetry/browser/1dsAppender' ;
14
+ import { telemetryEndpointUrl } from 'vs/platform/telemetry/common/1dsAppender' ;
14
15
import { ClassifiedEvent , GDPRClassification , StrictPropertyCheck } from 'vs/platform/telemetry/common/gdprTypings' ;
15
16
import { ITelemetryData , ITelemetryInfo , ITelemetryService , TelemetryLevel } from 'vs/platform/telemetry/common/telemetry' ;
16
17
import { TelemetryLogAppender } from 'vs/platform/telemetry/common/telemetryLogAppender' ;
17
18
import { 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' ;
19
20
import { IBrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService' ;
20
21
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService' ;
21
22
import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/browser/workbenchCommonProperties' ;
@@ -49,8 +50,15 @@ export class TelemetryService extends Disposable implements ITelemetryService {
49
50
commonProperties : resolveWorkbenchCommonProperties ( storageService , productService . commit , productService . version , isInternal , environmentService . remoteAuthority , productService . embedderIdentifier , productService . removeTelemetryMachineId , environmentService . options && environmentService . options . resolveCommonTelemetryProperties ) ,
50
51
sendErrorTelemetry : this . sendErrorTelemetry ,
51
52
} ;
52
-
53
53
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
+ }
54
62
} else {
55
63
this . impl = NullTelemetryService ;
56
64
}
0 commit comments