Skip to content

Commit a7f3407

Browse files
authored
Merge pull request #11 from SimplePDF/chrome-extension-1.3.0
feat: Chrome 1.3.0 - Auto Open PDF links
2 parents d8e5833 + bc4cf72 commit a7f3407

File tree

14 files changed

+351
-47
lines changed

14 files changed

+351
-47
lines changed

chrome-extension/_locales/de/messages.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,11 @@
1616
},
1717
"openedInOtherTab": {
1818
"message": "Wir haben den Editor für Sie in einem neuen Tab geöffnet"
19+
},
20+
"preferencesHeader": {
21+
"message": "Einstellungen"
22+
},
23+
"autoOpenLabel": {
24+
"message": "PDF-Links mit SimplePDF öffnen"
1925
}
2026
}

chrome-extension/_locales/en/messages.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,11 @@
1616
},
1717
"openedInOtherTab": {
1818
"message": "We opened the editor in a new tab for you"
19+
},
20+
"preferencesHeader": {
21+
"message": "Preferences"
22+
},
23+
"autoOpenLabel": {
24+
"message": "Open PDF links with SimplePDF"
1925
}
20-
}
26+
}

chrome-extension/_locales/es/messages.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,11 @@
1616
},
1717
"openedInOtherTab": {
1818
"message": "Abrimos el editor en una nueva pestaña para ti"
19+
},
20+
"preferencesHeader": {
21+
"message": "Preferencias"
22+
},
23+
"autoOpenLabel": {
24+
"message": "Abrir enlaces PDF con SimplePDF"
1925
}
2026
}

chrome-extension/_locales/fr/messages.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,11 @@
1616
},
1717
"openedInOtherTab": {
1818
"message": "Nous avons ouvert l'éditeur dans un nouvel onglet pour vous"
19+
},
20+
"preferencesHeader": {
21+
"message": "Préférences"
22+
},
23+
"autoOpenLabel": {
24+
"message": "Ouvrir les liens PDF avec SimplePDF"
1925
}
2026
}

chrome-extension/_locales/it/messages.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,11 @@
1616
},
1717
"openedInOtherTab": {
1818
"message": "Abbiamo aperto l'editor in una nuova scheda per te"
19+
},
20+
"preferencesHeader": {
21+
"message": "Preferenze"
22+
},
23+
"autoOpenLabel": {
24+
"message": "Apri i link PDF con SimplePDF"
1925
}
2026
}

chrome-extension/_locales/pt_BR/messages.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,11 @@
1616
},
1717
"openedInOtherTab": {
1818
"message": "Abrimos o editor em uma nova aba para você"
19+
},
20+
"preferencesHeader": {
21+
"message": "Preferências"
22+
},
23+
"autoOpenLabel": {
24+
"message": "Abrir links PDF com o SimplePDF"
1925
}
2026
}

chrome-extension/_locales/pt_PT/messages.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,11 @@
1616
},
1717
"openedInOtherTab": {
1818
"message": "Abrimos o editor num novo separador para si"
19+
},
20+
"preferencesHeader": {
21+
"message": "Preferências"
22+
},
23+
"autoOpenLabel": {
24+
"message": "Abrir ligações PDF com o SimplePDF"
1925
}
2026
}

chrome-extension/background.js

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
// User preferences change
2+
chrome.storage.onChanged.addListener((changes, areaName) => {
3+
const hasPreferencesChanged = areaName === "local" && changes.userPreferences;
4+
5+
if (!hasPreferencesChanged) {
6+
return;
7+
}
8+
9+
toggleAutoOpenPDFLinksOnCurrentTab();
10+
});
11+
12+
// Current tab switch
13+
chrome.tabs.onActivated.addListener(() => {
14+
toggleAutoOpenPDFLinksOnCurrentTab();
15+
});
16+
17+
// Current tab URL change
18+
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
19+
if (changeInfo.status !== "complete") {
20+
return;
21+
}
22+
23+
toggleAutoOpenPDFLinksOnCurrentTab();
24+
});
25+
26+
function toggleAutoOpenPDFLinksOnCurrentTab() {
27+
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
28+
const currentTab = tabs[0];
29+
30+
if (!currentTab || !currentTab.id || !currentTab.url) {
31+
return;
32+
}
33+
34+
const isUnsupportedURL =
35+
currentTab.url.startsWith("chrome://") ||
36+
currentTab.url.startsWith("edge://");
37+
38+
if (isUnsupportedURL) {
39+
return;
40+
}
41+
42+
chrome.storage.local.get("userPreferences", ({ userPreferences }) => {
43+
const preferences = userPreferences ?? { autoOpen: false };
44+
45+
chrome.scripting.executeScript(
46+
{
47+
target: { tabId: currentTab.id },
48+
files: ["./node_modules/@simplepdf/web-embed-pdf/dist/index.js"],
49+
},
50+
() => {
51+
if (chrome.runtime.lastError) {
52+
return;
53+
}
54+
55+
chrome.scripting.executeScript({
56+
target: { tabId: currentTab.id },
57+
func: (preferences) => {
58+
if (!window.simplePDF) {
59+
return;
60+
}
61+
62+
window.simplePDF.setConfig({
63+
autoOpen: preferences.autoOpen,
64+
companyIdentifier: "chrome",
65+
});
66+
},
67+
args: [preferences],
68+
});
69+
},
70+
);
71+
});
72+
});
73+
}

chrome-extension/manifest.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22
"name": "__MSG_app_name__",
33
"description": "__MSG_app_description__",
44
"default_locale": "en",
5-
"version": "1.2.1",
5+
"version": "1.3.0",
66
"manifest_version": 3,
7-
"permissions": ["activeTab", "scripting"],
7+
"permissions": ["activeTab", "scripting", "storage"],
8+
"host_permissions": ["<all_urls>"],
9+
"background": {
10+
"service_worker": "background.js"
11+
},
812
"action": {
913
"default_popup": "popup.html",
1014
"default_icon": {

chrome-extension/package-lock.json

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

0 commit comments

Comments
 (0)