Skip to content

Commit 6d13559

Browse files
committed
security fixes, refactoring to messenger
1 parent 33c28c0 commit 6d13559

File tree

7 files changed

+105
-71
lines changed

7 files changed

+105
-71
lines changed

src/background.js

+32-32
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ let tagNameToKeyMap = {}; // Mapping von Tag-Name zu Tag-Key
1010

1111
// translate-Funktion zur Nutzung von i18n
1212
function trans(messageName, placeholders = []) {
13-
const message = browser.i18n.getMessage(messageName, placeholders);
13+
const message = messenger.i18n.getMessage(messageName, placeholders);
1414

1515
if (!message) {
1616
console.warn(`No translation found for key "${messageName}"`);
@@ -24,15 +24,15 @@ function trans(messageName, placeholders = []) {
2424
function initialize() {
2525
console.log("Initializing...");
2626
Promise.all([
27-
browser.storage.local.get([
27+
messenger.storage.local.get([
2828
"selectedTags",
2929
"bayesData",
3030
"selectedAccounts",
3131
"threshold",
3232
"tagOnTraining",
3333
"removeOnClassify",
3434
]),
35-
browser.messages.listTags(),
35+
messenger.messages.listTags(),
3636
])
3737
.then(([storageResult, tags]) => {
3838
allTags = tags;
@@ -66,7 +66,7 @@ function initialize() {
6666
settingsToSave.removeOnClassify = false;
6767
}
6868
if (Object.keys(settingsToSave).length > 0) {
69-
browser.storage.local.set(settingsToSave);
69+
messenger.storage.local.set(settingsToSave);
7070
}
7171

7272
// Mapping von Tag-Key zu Tag-Name erstellen
@@ -121,21 +121,21 @@ function initialize() {
121121
console.log("RemoveOnClassify status:", removeOnClassify);
122122

123123
createContextMenu();
124-
browser.messages.onNewMailReceived.addListener(onNewMailReceived);
124+
messenger.messages.onNewMailReceived.addListener(onNewMailReceived);
125125
})
126126
.catch((error) => {
127127
console.error("Error during initialization:", error);
128128
});
129129
}
130130

131131
function openPopupWithMessage(messageText) {
132-
browser.browserAction
132+
messenger.browserAction
133133
.setPopup({
134134
popup: `popup/popup.html?message=${encodeURIComponent(messageText)}`,
135135
})
136136
.then(() => {
137-
browser.browserAction.openPopup().then(() => {
138-
browser.browserAction.setPopup({ popup: "popup/popup.html" });
137+
messenger.browserAction.openPopup().then(() => {
138+
messenger.browserAction.setPopup({ popup: "popup/popup.html" });
139139
});
140140
})
141141
.catch((error) => {
@@ -145,34 +145,34 @@ function openPopupWithMessage(messageText) {
145145

146146

147147
function createContextMenu() {
148-
browser.menus
148+
messenger.menus
149149
.removeAll()
150150
.then(() => {
151151
// Hauptmenüeintrag für PrioMailbox
152-
browser.menus.create({
152+
messenger.menus.create({
153153
id: "priomailbox",
154154
title: "PrioMailbox",
155155
contexts: ["message_list"],
156156
});
157157

158158
// Untermenüeintrag für E-Mail-Infos
159-
browser.menus.create({
159+
messenger.menus.create({
160160
id: "show_info",
161161
parentId: "priomailbox",
162162
title: trans("emailInfoMenu"),
163163
contexts: ["message_list"],
164164
});
165165

166166
// Untermenüeintrag für Klassifizieren
167-
browser.menus.create({
167+
messenger.menus.create({
168168
id: "classify",
169169
parentId: "priomailbox",
170170
title: trans("classifyMenu"),
171171
contexts: ["message_list"],
172172
});
173173

174174
// Trenner im Menü
175-
browser.menus.create({
175+
messenger.menus.create({
176176
id: "separator_top",
177177
parentId: "priomailbox",
178178
type: "separator",
@@ -186,23 +186,23 @@ function createContextMenu() {
186186
const tagKey = tagNameToKeyMap[tagName];
187187
if (tagKey) {
188188
// Hauptmenüeintrag für das Schlagwort mit Platzhalter
189-
browser.menus.create({
189+
messenger.menus.create({
190190
id: `tag_${tagKey}`,
191191
parentId: "priomailbox",
192192
title: trans("trainTagMenu", [tagName]),
193193
contexts: ["message_list"],
194194
});
195195

196196
// Untermenüeintrag: Lerne als [Schlagwort]
197-
browser.menus.create({
197+
messenger.menus.create({
198198
id: `learn_${tagKey}`,
199199
parentId: `tag_${tagKey}`,
200200
title: trans("learnTagMenu", [tagName]),
201201
contexts: ["message_list"],
202202
});
203203

204204
// Untermenüeintrag: Lerne als nicht [Schlagwort]
205-
browser.menus.create({
205+
messenger.menus.create({
206206
id: `unlearn_${tagKey}`,
207207
parentId: `tag_${tagKey}`,
208208
title: trans("unlearnTagMenu", [tagName]),
@@ -221,7 +221,7 @@ function createContextMenu() {
221221

222222
initialize();
223223

224-
browser.storage.onChanged.addListener((changes, area) => {
224+
messenger.storage.onChanged.addListener((changes, area) => {
225225
if (area === "local") {
226226
if (changes.selectedTags) {
227227
selectedTags = changes.selectedTags.newValue.map(
@@ -242,7 +242,7 @@ browser.storage.onChanged.addListener((changes, area) => {
242242
}
243243
});
244244

245-
browser.menus.onClicked.addListener((info, tab) => {
245+
messenger.menus.onClicked.addListener((info, tab) => {
246246
console.log("Menu item clicked:", info.menuItemId);
247247
console.log("Info object:", info);
248248
if (info.selectedMessages && info.selectedMessages.messages.length > 0) {
@@ -261,7 +261,7 @@ browser.menus.onClicked.addListener((info, tab) => {
261261

262262
function handleMenuClick(info, messageId) {
263263
// Lade die neuesten bayesData bei jedem Klick
264-
browser.storage.local
264+
messenger.storage.local
265265
.get("bayesData")
266266
.then((result) => {
267267
bayesData = result.bayesData || {}; // Stelle sicher, dass die neuesten Daten geladen sind
@@ -302,7 +302,7 @@ function handleMenuClick(info, messageId) {
302302

303303

304304
function selectMessage(messageId) {
305-
return browser.mailTabs
305+
return messenger.mailTabs
306306
.setSelectedMessages([messageId])
307307
.then(() => {
308308
console.log(`Message with ID ${messageId} selected.`);
@@ -313,7 +313,7 @@ function selectMessage(messageId) {
313313
}
314314

315315
function getMessageTags(messageId) {
316-
return browser.messages.get(messageId).then((message) => message.tags || []);
316+
return messenger.messages.get(messageId).then((message) => message.tags || []);
317317
}
318318

319319
function learnTagFromMail(messageId, tagName, isPositive) {
@@ -328,7 +328,7 @@ function learnTagFromMail(messageId, tagName, isPositive) {
328328
return;
329329
}
330330

331-
browser.storage.local
331+
messenger.storage.local
332332
.get(["bayesData", "tagOnTraining"])
333333
.then((result) => {
334334
const tagOnTraining =
@@ -440,7 +440,7 @@ function learnTagFromMail(messageId, tagName, isPositive) {
440440
const updatedTags = Array.from(
441441
new Set([...currentTags, tagKey])
442442
);
443-
browser.messages
443+
messenger.messages
444444
.update(messageId, {
445445
tags: updatedTags,
446446
})
@@ -454,7 +454,7 @@ function learnTagFromMail(messageId, tagName, isPositive) {
454454
const updatedTags = currentTags.filter(
455455
(key) => key !== tagKey
456456
);
457-
browser.messages
457+
messenger.messages
458458
.update(messageId, {
459459
tags: updatedTags,
460460
})
@@ -477,7 +477,7 @@ function learnTagFromMail(messageId, tagName, isPositive) {
477477
});
478478
}
479479

480-
browser.storage.local
480+
messenger.storage.local
481481
.set({ bayesData })
482482
.then(() => {
483483
const probabilityAfter = calculateBayesProbability(
@@ -548,7 +548,7 @@ function classifyEmail(messageId) {
548548
updatedTags = Array.from(updatedTags);
549549

550550
if (tagsToAdd.length > 0 || tagsToRemove.length > 0) {
551-
browser.messages
551+
messenger.messages
552552
.update(messageId, { tags: updatedTags })
553553
.then(() => {
554554
if (tagsToAdd.length > 0) {
@@ -613,7 +613,7 @@ function classifyNewEmail(messageId) {
613613
const updatedTags = Array.from(
614614
new Set([...currentTags, ...tagsToAdd])
615615
);
616-
browser.messages
616+
messenger.messages
617617
.update(messageId, { tags: updatedTags })
618618
.then(() => {
619619
console.log(
@@ -693,11 +693,11 @@ function showEMailInfo(messageId) {
693693
}
694694
});
695695

696-
browser.storage.local
696+
messenger.storage.local
697697
.set({ bayesInfoData: probabilities })
698698
.then(() => {
699699
console.log("Bayes info data saved.");
700-
browser.windows
700+
messenger.windows
701701
.create({
702702
url: "email_info.html",
703703
type: "popup",
@@ -717,9 +717,9 @@ function showEMailInfo(messageId) {
717717
});
718718
}
719719

720-
browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
720+
messenger.runtime.onMessage.addListener((message, sender, sendResponse) => {
721721
if (message.action === "refreshBayesData") {
722-
browser.storage.local
722+
messenger.storage.local
723723
.get("bayesData")
724724
.then((result) => {
725725
bayesData = result.bayesData || {};
@@ -733,7 +733,7 @@ browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
733733
}
734734

735735
if (message.action === "updateContextMenu") {
736-
browser.storage.local
736+
messenger.storage.local
737737
.get(["selectedTags", "selectedAccounts"])
738738
.then((result) => {
739739
selectedTags = result.selectedTags || [];

src/email_info.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// email_info.js
22

33
function trans(messageName, placeholders = {}) {
4-
const message = browser.i18n.getMessage(messageName, Object.values(placeholders));
4+
const message = messenger.i18n.getMessage(messageName, Object.values(placeholders));
55

66
if (!message) {
77
console.warn(`No translation found for key "${messageName}".`);
@@ -26,8 +26,8 @@ document.addEventListener("DOMContentLoaded", () => {
2626
document.getElementById('emailinfo_label_known_tokens').textContent = trans("emailinfo_label_known_tokens");
2727

2828
Promise.all([
29-
browser.storage.local.get(["bayesInfoData", "bayesData"]),
30-
browser.messages.listTags()
29+
messenger.storage.local.get(["bayesInfoData", "bayesData"]),
30+
messenger.messages.listTags()
3131
]).then(([result, tags]) => {
3232
const probabilities = result.bayesInfoData || [];
3333
const bayesData = result.bayesData || {};
@@ -156,7 +156,7 @@ document.addEventListener("DOMContentLoaded", () => {
156156
});
157157

158158
// Entferne bayesInfoData nach der Anzeige
159-
browser.storage.local.remove(["bayesInfoData"]);
159+
messenger.storage.local.remove(["bayesInfoData"]);
160160

161161
// Fenstergröße nach dem Laden des Inhalts anpassen
162162
adjustWindowSize();
@@ -179,8 +179,8 @@ document.addEventListener("DOMContentLoaded", () => {
179179
html.clientWidth, html.scrollWidth, html.offsetWidth
180180
);
181181

182-
browser.windows.getCurrent().then((windowInfo) => {
183-
browser.windows.update(windowInfo.id, {
182+
messenger.windows.getCurrent().then((windowInfo) => {
183+
messenger.windows.update(windowInfo.id, {
184184
width: Math.min(width, 800), // Keine zusätzliche Breite hinzufügen
185185
height: Math.min(height + 50, 600) // Höhe auf maximal 600px begrenzen
186186
});

src/help/help.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ document.addEventListener('DOMContentLoaded', () => {
1010
}
1111

1212
// Get the current language of the Thunderbird UI
13-
let userLanguage = browser.i18n.getUILanguage();
13+
let userLanguage = messenger.i18n.getUILanguage();
1414
// Extract the base language code (e.g., 'en' from 'en-US')
1515
userLanguage = userLanguage.split('-')[0];
1616

@@ -24,7 +24,7 @@ document.addEventListener('DOMContentLoaded', () => {
2424
}
2525

2626
// Define the path to help.json
27-
const helpJsonUrl = browser.runtime.getURL(`_locales/${helpLocale}/help.json`);
27+
const helpJsonUrl = messenger.runtime.getURL(`_locales/${helpLocale}/help.json`);
2828

2929
// Fetch the help.json
3030
fetchJSON(helpJsonUrl)
@@ -69,7 +69,7 @@ document.addEventListener('DOMContentLoaded', () => {
6969
console.error('Error loading help.json:', error);
7070
// Fallback to English if fetching localized help.json fails
7171
if (helpLocale !== 'en') {
72-
const fallbackHelpJsonUrl = browser.runtime.getURL('_locales/en/help.json');
72+
const fallbackHelpJsonUrl = messenger.runtime.getURL('_locales/en/help.json');
7373
fetchJSON(fallbackHelpJsonUrl)
7474
.then(data => {
7575
// Populate the HTML with fallback (English) strings

src/manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"manifest_version": 2,
33
"name": "PrioMailbox",
4-
"version": "0.11.6",
4+
"version": "0.11.7",
55
"default_locale": "en",
66
"description": "PrioMailbox organisiert Ihre E-Mails in Thunderbird mit intelligenten, trainierbaren Schlagwörtern. Wichtiges wird hervorgehoben, Unwichtiges ausgeblendet.",
77
"icons": {

0 commit comments

Comments
 (0)