From b4a9be4742bb812406f77429e1338c15bee61c39 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 4 Feb 2024 08:58:52 +0300 Subject: [PATCH 1/2] feat(assets): don't encode `>` and `<` characters --- packages/vite/src/node/plugins/asset.ts | 2 -- playground/assets/__tests__/assets.spec.ts | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index 1b3a0cd752136a..8c88ee285b7528 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -446,8 +446,6 @@ function svgToDataURL(content: Buffer): string { .replaceAll('"', "'") .replaceAll('%', '%25') .replaceAll('#', '%23') - .replaceAll('<', '%3c') - .replaceAll('>', '%3e') // Spaces are not valid in srcset it has some use cases // it can make the uncompressed URI slightly higher than base64, but will compress way better // https://github.com/vitejs/vite/pull/14643#issuecomment-1766288673 diff --git a/playground/assets/__tests__/assets.spec.ts b/playground/assets/__tests__/assets.spec.ts index 5933db4d76c08d..7c1fb861575e71 100644 --- a/playground/assets/__tests__/assets.spec.ts +++ b/playground/assets/__tests__/assets.spec.ts @@ -333,7 +333,7 @@ describe('svg fragments', () => { expect(await img.getAttribute('src')).toMatch( isBuild ? // Assert trimmed (data URI starts with < and ends with >) - /^data:image\/svg\+xml,%3c.*%3e#icon-heart-view$/ + /^data:image\/svg\+xml,<.*>#icon-heart-view$/ : /svg#icon-heart-view$/, ) }) From eeaa9b8490e16c26146016211bb33cd54e5091a4 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 4 Feb 2024 08:58:52 +0300 Subject: [PATCH 2/2] feat(assets): encode `<` before `style` --- packages/vite/src/node/plugins/asset.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts index 8c88ee285b7528..86dc7a6e49d969 100644 --- a/packages/vite/src/node/plugins/asset.ts +++ b/packages/vite/src/node/plugins/asset.ts @@ -446,6 +446,7 @@ function svgToDataURL(content: Buffer): string { .replaceAll('"', "'") .replaceAll('%', '%25') .replaceAll('#', '%23') + .replaceAll('