From c30702a01fa2531dc4ce634b6e8a53820c1f0ebf Mon Sep 17 00:00:00 2001 From: TimothyJNewman <84350177+TimothyJNewman@users.noreply.github.com> Date: Wed, 20 Jul 2022 21:04:28 +0100 Subject: [PATCH] Added new file protocol for pdf. Causes crash https://github.com/electron/electron/issues/33907 --- src/main/main.js | 8 ++++++-- src/main/pdfGenerator/pdfGenerator.js | 2 +- src/renderer/components/PdfDisplay.js | 5 +++-- src/renderer/index.html | 2 +- src/renderer/pages/CvConstructorPage/CvConstructorPage.js | 5 ++--- src/renderer/pages/CvConstructorPage/CvSectionBuilder.js | 1 - 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/main.js b/src/main/main.js index a0a5be1..234490d 100644 --- a/src/main/main.js +++ b/src/main/main.js @@ -1,4 +1,4 @@ -const { app, BrowserWindow, ipcMain, session } = require('electron') +const { app, BrowserWindow, ipcMain, session, protocol } = require('electron') const path = require('path') const fs = require('fs') const isDev = require('electron-is-dev') @@ -48,11 +48,15 @@ app.on('ready', async () => { await session.defaultSession.loadExtension( 'C:/Users/timot/AppData/Local/Google/Chrome/User Data/Profile 2/Extensions/fmkadmapgofadopljbjfkapdkoienihi/4.25.0_0' ) + protocol.registerFileProtocol('atom', (request, callback) => { + const url = request.url.substr(7) + callback({ path: path.normalize(`${__dirname}/${url}`) }) + }) session.defaultSession.webRequest.onHeadersReceived((details, callback) => { callback({ responseHeaders: { ...details.responseHeaders, - 'Content-Security-Policy': ['default-src \'self\' \'unsafe-inline\' filesystem:; object-src \'self\' filesystem:;'] + 'Content-Security-Policy': ['default-src \'self\' \'unsafe-inline\' atom:; object-src \'self\' atom:;'] } }) }) diff --git a/src/main/pdfGenerator/pdfGenerator.js b/src/main/pdfGenerator/pdfGenerator.js index c16e42e..9e797d7 100644 --- a/src/main/pdfGenerator/pdfGenerator.js +++ b/src/main/pdfGenerator/pdfGenerator.js @@ -32,7 +32,7 @@ const pdfGeneratorHandler = async (event, args) => { return new Promise((resolve, reject) => { pdf.on('error', (err) => reject(err)) - pdf.on('finish', resolve(path.join(app.getPath("userData"), 'output_files/pdf_files', `output${args.id}.pdf`))) + pdf.on('finish', resolve(`atom://${app.getPath("userData")}\\input${args.id}.pdf`)) }) } diff --git a/src/renderer/components/PdfDisplay.js b/src/renderer/components/PdfDisplay.js index 199cec9..8604d7f 100644 --- a/src/renderer/components/PdfDisplay.js +++ b/src/renderer/components/PdfDisplay.js @@ -5,15 +5,16 @@ import React from 'react' const PdfDisplay = ({ url }) => { return (
+ {console.log(url)}

CV pdf viewer

- + />}
) } diff --git a/src/renderer/index.html b/src/renderer/index.html index 39d996b..9f90176 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -4,7 +4,7 @@ + content="default-src 'self' 'unsafe-inline' atom:; object-src atom:;"> Job Application Tracker diff --git a/src/renderer/pages/CvConstructorPage/CvConstructorPage.js b/src/renderer/pages/CvConstructorPage/CvConstructorPage.js index 49bd768..2d3644f 100644 --- a/src/renderer/pages/CvConstructorPage/CvConstructorPage.js +++ b/src/renderer/pages/CvConstructorPage/CvConstructorPage.js @@ -142,9 +142,7 @@ const CvConstructorPage = ({ id, setPdfUrl }) => { createDatabaseEntry( 'INSERT INTO cv_components (cv_section, cv_component_text, date_created) VALUES (?,?,?)', [sectionObj.section, JSON.stringify(sectionObj), new Date().toISOString()], - (url) => { - console.log(url) - } + () => { } ) setNoElementsAdded(noElementsAdded + 1) toggleCvBuilder(false) @@ -170,6 +168,7 @@ const CvConstructorPage = ({ id, setPdfUrl }) => { 'UPDATE applications SET is_cv_ready=true, cv_url=? WHERE id=?', [result, id], (e) => { + console.log(result) setPdfUrl({ isReady: true, url: result }) } ) diff --git a/src/renderer/pages/CvConstructorPage/CvSectionBuilder.js b/src/renderer/pages/CvConstructorPage/CvSectionBuilder.js index 4540b18..de18409 100644 --- a/src/renderer/pages/CvConstructorPage/CvSectionBuilder.js +++ b/src/renderer/pages/CvConstructorPage/CvSectionBuilder.js @@ -13,7 +13,6 @@ const reducer = (state, action) => { if (index) { let newInputArray = [...state[name]] newInputArray[index] = action.value - console.log('new action', action) newState[name] = newInputArray } // for non-array inputs