Skip to content

Commit bbd4748

Browse files
authored
CCFRI-8004: Refactor Vue PDF Embed (#1108)
* fix?: vue-pdf-embed generating inline scripts * fix: eslint * fix?: attempt to get vite to extract pdf bundles * fix: pdfworker and api mismatch silent error * fix: connect-src blocking inline pdf
1 parent 99a324a commit bbd4748

4 files changed

Lines changed: 54 additions & 53 deletions

File tree

frontend/Caddyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ header {
2525
Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate"
2626
X-Content-Type-Options "nosniff"
2727
Strict-Transport-Security "max-age=31536000"
28-
Content-Security-Policy "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'self'"
28+
Content-Security-Policy "default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self' data:; frame-ancestors 'none'; base-uri 'none'; form-action 'self'"
2929
Referrer-Policy "same-origin"
3030
Feature-Policy "fullscreen 'self'; camera 'none'; microphone 'none'"
3131
}

frontend/package-lock.json

Lines changed: 48 additions & 47 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"moment": "^2.30.1",
3636
"nconf": "^0.12.1",
3737
"path": "^0.12.7",
38+
"pdfjs-dist": "^4.10.38",
3839
"pinia": "^2.2.2",
3940
"prom-client": "^15.1.3",
4041
"rfdc": "^1.4.1",

frontend/src/components/guiComponents/AppPDFViewer.vue

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@
77
</template>
88

99
<script>
10-
import VuePdfEmbed from 'vue-pdf-embed';
10+
// Fixes CSP problems with inline pdf scripts.
11+
import VuePdfEmbed, { GlobalWorkerOptions } from 'vue-pdf-embed/dist/index.essential.mjs';
12+
import PdfWorker from 'pdfjs-dist/build/pdf.worker.mjs?url';
13+
GlobalWorkerOptions.workerSrc = PdfWorker;
1114
1215
export default {
1316
name: 'AppPDFViewer',
1417
components: { VuePdfEmbed },
15-
1618
props: {
1719
pdfFile: {
1820
type: [String, Object],
1921
required: true,
20-
default: () => {
21-
return {};
22-
},
2322
},
2423
},
2524
};

0 commit comments

Comments
 (0)