From 28414b118d52a22428f4b96dc07b982ae763c3cb Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Wed, 9 Nov 2022 09:22:31 +0000 Subject: [PATCH] Merge pull request #10383 from overleaf/jpa-pdf-caching-avoid-cache-for-range-request [web] pdf-caching: avoid browser cache for range requests on output.pdf GitOrigin-RevId: 546380cfb24094db0af7de0f47f5a69c60b0586d --- .../js/features/pdf-preview/util/metrics.js | 2 +- .../js/features/pdf-preview/util/pdf-caching.js | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/services/web/frontend/js/features/pdf-preview/util/metrics.js b/services/web/frontend/js/features/pdf-preview/util/metrics.js index 21e37508f2..ce683cb128 100644 --- a/services/web/frontend/js/features/pdf-preview/util/metrics.js +++ b/services/web/frontend/js/features/pdf-preview/util/metrics.js @@ -4,7 +4,7 @@ import { trackPdfDownloadEnabled } from './pdf-caching-flags' // VERSION should get incremented when making changes to caching behavior or // adjusting metrics collection. -const VERSION = 8 +const VERSION = 9 // editing session id const EDITOR_SESSION_ID = uuid() diff --git a/services/web/frontend/js/features/pdf-preview/util/pdf-caching.js b/services/web/frontend/js/features/pdf-preview/util/pdf-caching.js index b0216a8ab8..960411cb88 100644 --- a/services/web/frontend/js/features/pdf-preview/util/pdf-caching.js +++ b/services/web/frontend/js/features/pdf-preview/util/pdf-caching.js @@ -472,6 +472,7 @@ function checkChunkResponse(response, estimatedSize, init) { export async function fallbackRequest({ url, start, end, abortSignal }) { try { const init = { + cache: 'no-store', headers: { Range: `bytes=${start}-${end - 1}` }, signal: abortSignal, } @@ -809,7 +810,10 @@ export async function fetchRange({ coalescedDynamicChunks.push({ chunk: dynamicChunks[0], url, - init: { headers: { Range: `bytes=${byteRanges}` } }, + init: { + cache: 'no-store', + headers: { Range: `bytes=${byteRanges}` }, + }, }) break case dynamicChunks.length <= MULTI_PART_THRESHOLD: @@ -820,7 +824,10 @@ export async function fetchRange({ coalescedDynamicChunks.push({ chunk, url, - init: { headers: { Range: `bytes=${chunk.start}-${chunk.end - 1}` } }, + init: { + cache: 'no-store', + headers: { Range: `bytes=${chunk.start}-${chunk.end - 1}` }, + }, }) }) break @@ -828,7 +835,10 @@ export async function fetchRange({ coalescedDynamicChunks.push({ chunk: dynamicChunks, url, - init: { headers: { Range: `bytes=${byteRanges}` } }, + init: { + cache: 'no-store', + headers: { Range: `bytes=${byteRanges}` }, + }, }) }