From d5a55ef7e62f8e42a68553d8894da8b20d509cde Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 6 Apr 2020 13:05:50 +0200 Subject: [PATCH] Fix #83215 --- .../environment/common/environment.ts | 3 +- .../common/extensionGalleryService.ts | 4 +-- .../common/serviceMachineId.ts | 32 +++++++++---------- .../common/userDataSyncStoreService.ts | 4 +-- .../environment/browser/environmentService.ts | 3 ++ 5 files changed, 21 insertions(+), 25 deletions(-) diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts index f1078fd5964..c64c5fc6815 100644 --- a/src/vs/platform/environment/common/environment.ts +++ b/src/vs/platform/environment/common/environment.ts @@ -63,8 +63,7 @@ export interface IEnvironmentService { // --- misc disableTelemetry: boolean; - // TODO@sandeep move into node layer (https://github.com/microsoft/vscode/issues/94504) - serviceMachineIdResource?: URI; + serviceMachineIdResource: URI; /** * @deprecated use IRemotePathService#userHome instead (https://github.com/microsoft/vscode/issues/94506) diff --git a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts index 2366c8ba7d6..6029ccdc646 100644 --- a/src/vs/platform/extensionManagement/common/extensionGalleryService.ts +++ b/src/vs/platform/extensionManagement/common/extensionGalleryService.ts @@ -769,8 +769,6 @@ export async function resolveMarketplaceHeaders(version: string, environmentServ 'User-Agent': `VSCode ${version}` }; const uuid = await getServiceMachineId(environmentService, fileService, storageService); - if (uuid) { - headers['X-Market-User-Id'] = uuid; - } + headers['X-Market-User-Id'] = uuid; return headers; } diff --git a/src/vs/platform/serviceMachineId/common/serviceMachineId.ts b/src/vs/platform/serviceMachineId/common/serviceMachineId.ts index 16178a9da1f..97abad3736d 100644 --- a/src/vs/platform/serviceMachineId/common/serviceMachineId.ts +++ b/src/vs/platform/serviceMachineId/common/serviceMachineId.ts @@ -12,30 +12,28 @@ import { VSBuffer } from 'vs/base/common/buffer'; export async function getServiceMachineId(environmentService: IEnvironmentService, fileService: IFileService, storageService: { get: (key: string, scope: StorageScope, fallbackValue?: string | undefined) => string | undefined, store: (key: string, value: string, scope: StorageScope) => void -} | undefined): Promise { +} | undefined): Promise { let uuid: string | null = storageService ? storageService.get('storage.serviceMachineId', StorageScope.GLOBAL) || null : null; if (uuid) { return uuid; } - if (environmentService.serviceMachineIdResource) { - try { - const contents = await fileService.readFile(environmentService.serviceMachineIdResource); - const value = contents.value.toString(); - uuid = isUUID(value) ? value : null; - } catch (e) { - uuid = null; - } + try { + const contents = await fileService.readFile(environmentService.serviceMachineIdResource); + const value = contents.value.toString(); + uuid = isUUID(value) ? value : null; + } catch (e) { + uuid = null; + } - if (!uuid) { - uuid = generateUuid(); - try { - await fileService.writeFile(environmentService.serviceMachineIdResource, VSBuffer.fromString(uuid)); - } catch (error) { - //noop - } + if (!uuid) { + uuid = generateUuid(); + try { + await fileService.writeFile(environmentService.serviceMachineIdResource, VSBuffer.fromString(uuid)); + } catch (error) { + //noop } } - if (uuid && storageService) { + if (storageService) { storageService.store('storage.serviceMachineId', uuid, StorageScope.GLOBAL); } return uuid; diff --git a/src/vs/platform/userDataSync/common/userDataSyncStoreService.ts b/src/vs/platform/userDataSync/common/userDataSyncStoreService.ts index d292ef24ef9..7856c7fd71e 100644 --- a/src/vs/platform/userDataSync/common/userDataSyncStoreService.ts +++ b/src/vs/platform/userDataSync/common/userDataSyncStoreService.ts @@ -43,9 +43,7 @@ export class UserDataSyncStoreService extends Disposable implements IUserDataSyn const headers: IHeaders = { 'X-Sync-Client-Id': productService.version, }; - if (uuid) { - headers['X-Sync-Machine-Id'] = uuid; - } + headers['X-Sync-Machine-Id'] = uuid; return headers; }); } diff --git a/src/vs/workbench/services/environment/browser/environmentService.ts b/src/vs/workbench/services/environment/browser/environmentService.ts index dc042ac4f10..c7a2eda6c58 100644 --- a/src/vs/workbench/services/environment/browser/environmentService.ts +++ b/src/vs/workbench/services/environment/browser/environmentService.ts @@ -134,6 +134,9 @@ export class BrowserWorkbenchEnvironmentService implements IWorkbenchEnvironment @memoize get untitledWorkspacesHome(): URI { return joinPath(this.userRoamingDataHome, 'Workspaces'); } + @memoize + get serviceMachineIdResource(): URI { return joinPath(this.userRoamingDataHome, 'machineid'); } + private _extensionHostDebugEnvironment: IExtensionHostDebugEnvironment | undefined = undefined; get debugExtensionHost(): IExtensionHostDebugParams { if (!this._extensionHostDebugEnvironment) { -- GitLab