From c1c28a8b29c1050fbc27c825fc28343cd2c4a382 Mon Sep 17 00:00:00 2001 From: Shannon Kerr Date: Tue, 18 Aug 2026 15:34:04 -0400 Subject: [PATCH] fix: preview PDFs via blob URL instead of a remote iframe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Iframing getFileUrl fails when the file server is cross-origin (desktop loadFile, cloud dl.huly.app vs huly.app): cookies are not sent, and X-Frame-Options: SAMEORIGIN blanks the frame. Download the file with Authorization: Bearer (datalake already accepts this; default cors() allows the preflight) and iframe a blob: URL — the same workaround already used for HTML preview. Same-origin self-host still works via cookies on the fetch. Tokens stay out of the URL. pdf.js is not required. Fixes #1 --- .../src/components/PDFViewer.svelte | 5 +- .../ui/src/__test__/file-embed-utils.test.ts | 100 ++++++++++++++++++ .../ui/src/components/EmbeddedHTML.svelte | 31 +----- packages/ui/src/components/EmbeddedPDF.svelte | 57 +++++++++- packages/ui/src/file-embed-utils.ts | 60 +++++++++++ .../src/components/DOCXViewer.svelte | 2 +- .../src/components/viewer/PDFViewer.svelte | 7 +- 7 files changed, 229 insertions(+), 33 deletions(-) create mode 100644 packages/ui/src/__test__/file-embed-utils.test.ts create mode 100644 packages/ui/src/file-embed-utils.ts diff --git a/packages/presentation/src/components/PDFViewer.svelte b/packages/presentation/src/components/PDFViewer.svelte index 550d219f44..e2decea5bf 100644 --- a/packages/presentation/src/components/PDFViewer.svelte +++ b/packages/presentation/src/components/PDFViewer.svelte @@ -15,6 +15,7 @@ -{#if iframeSrc} - -{:else} - -{/if} + + diff --git a/packages/ui/src/components/EmbeddedPDF.svelte b/packages/ui/src/components/EmbeddedPDF.svelte index db4c12cb6c..d613e6baeb 100644 --- a/packages/ui/src/components/EmbeddedPDF.svelte +++ b/packages/ui/src/components/EmbeddedPDF.svelte @@ -14,12 +14,63 @@ --> -