Quellcode durchsuchen

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
Alf Eaton vor 3 Jahren
Ursprung
Commit
28414b118d

+ 1 - 1
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()

+ 13 - 3
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}` },
+        },
       })
   }