diff --git a/src/vs/base/browser/hash.ts b/src/vs/base/browser/hash.ts index bf48b614b15..10b7398ee81 100644 --- a/src/vs/base/browser/hash.ts +++ b/src/vs/base/browser/hash.ts @@ -10,7 +10,7 @@ export async function sha1Hex(str: string): Promise { // Prefer to use browser's crypto module if (globalThis?.crypto?.subtle) { - const hash = await globalThis.crypto.subtle.digest({ name: 'sha-1' }, VSBuffer.fromString(str).buffer); + const hash = await globalThis.crypto.subtle.digest({ name: 'sha-1' }, VSBuffer.fromString(str, { dontUseNodeBuffer: true }).buffer); return toHexString(hash); } diff --git a/src/vs/base/common/buffer.ts b/src/vs/base/common/buffer.ts index 6c6285e0c3b..9df28d9b4d2 100644 --- a/src/vs/base/common/buffer.ts +++ b/src/vs/base/common/buffer.ts @@ -34,8 +34,9 @@ export class VSBuffer { return new VSBuffer(actual); } - static fromString(source: string): VSBuffer { - if (hasBuffer) { + static fromString(source: string, options?: { dontUseNodeBuffer?: boolean; }): VSBuffer { + const dontUseNodeBuffer = options?.dontUseNodeBuffer || false; + if (!dontUseNodeBuffer && hasBuffer) { return new VSBuffer(Buffer.from(source)); } else if (hasTextEncoder) { if (!textEncoder) {