Skip to content

Commit 5cb9f24

Browse files
authored
Cleanup PDF Errors (#95)
1 parent 2057236 commit 5cb9f24

File tree

3 files changed

+23
-20
lines changed

3 files changed

+23
-20
lines changed

src/html/permissions.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ <h1>Link Extractor</h1>
3131
</ul>
3232
<p class="fw-bold mb-0">Firefox</p>
3333
<ul>
34-
<li>Extracting links from PDFs.</li>
3534
<li>Using Omnibox to extract links.</li>
35+
<li>Extracting links from PDFs.</li>
3636
</ul>
3737
<div class="d-none grant-perms">
3838
<button class="btn btn-lg btn-success w-100 mb-3 grant-permissions" type="button"

src/html/popup.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@
3636
data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Experimental Feature">
3737
<i class="fa-solid fa-file-pdf me-1"></i> Extract from PDF
3838
<i class="fa-solid fa-flask" id="pdf-icon" style="min-width: 22px;"></i></a>
39-
<div id="file-access" class="alert alert-warning text-center p-1 my-0 d-none">
39+
<div id="no-file-access" class="alert alert-warning text-center p-1 my-0 d-none">
4040
<span>Browser</span> does <b>not</b> allow access to files.
4141
</div>
42-
<div id="firefox-pdf" class="alert alert-warning text-center p-1 my-0 d-none">
43-
PDF Extraction Requires <a href="#" class="alert-link grant-permissions">Host Permissions</a>.
44-
</div>
45-
<div id="chrome-files" class="alert alert-warning text-center p-1 my-0 d-none">
42+
<div id="file-access" class="alert alert-warning text-center p-1 my-0 d-none">
4643
PDF files require <a href="https://link-extractor.cssnr.com/faq/#fileAccess" class="alert-link">file access</a>.
4744
</div>
45+
<div id="pdf-perms" class="alert alert-warning text-center p-1 my-0 d-none">
46+
PDF extraction needs <a href="#" class="alert-link grant-permissions">host permissions</a>.
47+
</div>
4848
<hr class="my-0">
4949
<form id="links-form" class="my-0">
5050
<label for="links-text" class="form-label visually-hidden">Open Links</label>

src/js/popup.js

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ async function initPopup() {
6464

6565
// PDF Check
6666
try {
67-
await checkPDF(hasPerms)
67+
await processFileTypes(hasPerms)
6868
} catch (e) {
6969
console.debug(e)
7070
}
@@ -76,7 +76,7 @@ async function initPopup() {
7676
// }
7777
}
7878

79-
async function checkPDF(hasPerms) {
79+
async function processFileTypes(hasPerms) {
8080
const [tab] = await chrome.tabs.query({ active: true })
8181
console.debug('tab:', tab)
8282
const url = new URL(tab.url)
@@ -85,30 +85,29 @@ async function checkPDF(hasPerms) {
8585
// console.debug('browser:', browser)
8686
if (url.pathname.toLowerCase().endsWith('.pdf')) {
8787
console.debug(`Detected PDF: ${url.href}`)
88-
if (['firefox', 'edge'].includes(browser.id)) {
89-
if (url.protocol === 'file:') {
90-
const el = document.getElementById('file-access')
88+
if (url.protocol === 'file:') {
89+
if (browser.id === 'firefox') {
90+
const el = document.getElementById('no-file-access')
9191
el.querySelector('span').textContent = browser.name
9292
el.classList.remove('d-none')
9393
return
9494
}
95-
if (!hasPerms) {
96-
document
97-
.getElementById('firefox-pdf')
98-
.classList.remove('d-none')
99-
return
100-
}
101-
} else if (url.protocol === 'file:') {
10295
const fileAccess =
10396
await chrome.extension.isAllowedFileSchemeAccess()
10497
console.debug('fileAccess:', fileAccess)
10598
if (!fileAccess) {
10699
document
107-
.getElementById('chrome-files')
100+
.getElementById('file-access')
108101
.classList.remove('d-none')
109102
return
110103
}
111104
}
105+
if (!hasPerms) {
106+
if (browser.id === 'firefox') {
107+
document.getElementById('pdf-perms').classList.remove('d-none')
108+
return
109+
}
110+
}
112111
pdfBtn.dataset.pdfUrl = url.href
113112
pdfBtn.classList.remove('d-none')
114113
pdfBtn.addEventListener('click', extractPDF)
@@ -132,7 +131,11 @@ async function extractPDF(event) {
132131
window.close()
133132
} catch (e) {
134133
console.log('e:', e)
135-
showToast(e.message, 'danger')
134+
if (e.message === 'Promise.withResolvers is not a function') {
135+
showToast('This browser does not support pdf.js', 'danger')
136+
} else {
137+
showToast(e.message, 'danger')
138+
}
136139
} finally {
137140
pdfIcon.classList.remove('fa-sync', 'fa-spin')
138141
pdfIcon.classList.add('fa-flask')

0 commit comments

Comments
 (0)