Index: lib/notificationHelper.js |
=================================================================== |
--- a/lib/notificationHelper.js |
+++ b/lib/notificationHelper.js |
@@ -52,21 +52,21 @@ |
function getNotificationButtons(notificationType, message) |
{ |
let buttons = []; |
if (notificationType == "question") |
{ |
buttons.push({ |
type: "question", |
- title: chrome.i18n.getMessage("overlay_notification_button_yes") |
+ title: browser.i18n.getMessage("overlay_notification_button_yes") |
}); |
buttons.push({ |
type: "question", |
- title: chrome.i18n.getMessage("overlay_notification_button_no") |
+ title: browser.i18n.getMessage("overlay_notification_button_no") |
}); |
} |
else |
{ |
let regex = /<a>(.*?)<\/a>/g; |
let match; |
while (match = regex.exec(message)) |
{ |
@@ -79,50 +79,50 @@ |
// Chrome only allows two notification buttons so we need to fall back |
// to a single button to open all links if there are more than two. |
let maxButtons = (notificationType == "critical") ? 2 : 1; |
if (buttons.length > maxButtons) |
{ |
buttons = [ |
{ |
type: "open-all", |
- title: chrome.i18n.getMessage("notification_open_all") |
+ title: browser.i18n.getMessage("notification_open_all") |
} |
]; |
} |
if (!["critical", "relentless"].includes(notificationType)) |
{ |
buttons.push({ |
type: "configure", |
- title: chrome.i18n.getMessage("notification_configure") |
+ title: browser.i18n.getMessage("notification_configure") |
}); |
} |
} |
return buttons; |
} |
function openNotificationLinks() |
{ |
if (activeNotification.links) |
{ |
for (let link of activeNotification.links) |
- chrome.tabs.create({url: Utils.getDocLink(link)}); |
+ browser.tabs.create({url: Utils.getDocLink(link)}); |
} |
} |
function notificationButtonClick(buttonIndex) |
{ |
if (!(activeButtons && buttonIndex in activeButtons)) |
return; |
switch (activeButtons[buttonIndex].type) |
{ |
case "link": |
- chrome.tabs.create({ |
+ browser.tabs.create({ |
url: Utils.getDocLink(activeNotification.links[buttonIndex]) |
}); |
break; |
case "open-all": |
openNotificationLinks(); |
break; |
case "configure": |
Prefs.notifications_showui = true; |
@@ -155,67 +155,70 @@ |
// we need to clear them. |
function clearActiveNotification(notificationId) |
{ |
if (activeNotification && |
activeNotification.type != "question" && |
!("links" in activeNotification)) |
return; |
- chrome.notifications.clear(notificationId, wasCleared => |
+ browser.notifications.clear(notificationId, wasCleared => |
{ |
if (wasCleared) |
notificationClosed(); |
}); |
} |
- chrome.notifications.onButtonClicked.addListener( |
+ browser.notifications.onButtonClicked.addListener( |
(notificationId, buttonIndex) => |
{ |
notificationButtonClick(buttonIndex); |
clearActiveNotification(notificationId); |
} |
); |
- chrome.notifications.onClicked.addListener(clearActiveNotification); |
- chrome.notifications.onClosed.addListener(notificationClosed); |
+ browser.notifications.onClicked.addListener(clearActiveNotification); |
+ browser.notifications.onClosed.addListener(notificationClosed); |
} |
function showNotification(notification) |
{ |
if (activeNotification && activeNotification.id == notification.id) |
return; |
activeNotification = notification; |
if (shouldDisplay("notification", activeNotification.type)) |
{ |
let texts = NotificationStorage.getLocalizedTexts(notification); |
let title = texts.title || ""; |
let message = (texts.message || "").replace(/<\/?(a|strong)>/g, ""); |
let iconUrl = ext.getURL("icons/detailed/abp-128.png"); |
let linkCount = (activeNotification.links || []).length; |
- if ("notifications" in chrome) |
+ if ("notifications" in browser) |
{ |
activeButtons = getNotificationButtons(activeNotification.type, |
texts.message); |
- chrome.notifications.create("", { |
+ browser.notifications.create("", { |
type: "basic", |
title, |
iconUrl, |
message, |
buttons: activeButtons.map(button => ({title: button.title})), |
// We use the highest priority to prevent the notification |
// from closing automatically. |
priority: 2 |
}); |
} |
else if ("Notification" in window && activeNotification.type != "question") |
{ |
if (linkCount > 0) |
- message += " " + chrome.i18n.getMessage("notification_without_buttons"); |
+ { |
+ message += " " + browser.i18n.getMessage( |
+ "notification_without_buttons"); |
+ } |
let widget = new Notification( |
title, |
{ |
lang: Utils.appLocale, |
dir: Utils.readingDirection, |
body: message, |
icon: iconUrl |
@@ -224,17 +227,20 @@ |
widget.addEventListener("click", openNotificationLinks); |
widget.addEventListener("close", notificationClosed); |
} |
else |
{ |
message = title + "\n" + message; |
if (linkCount > 0) |
- message += "\n\n" + chrome.i18n.getMessage("notification_with_buttons"); |
+ { |
+ message += "\n\n" + browser.i18n.getMessage( |
+ "notification_with_buttons"); |
+ } |
let approved = confirm(message); |
if (activeNotification.type == "question") |
notificationButtonClick(approved ? 0 : 1); |
else if (approved) |
openNotificationLinks(); |
} |
} |
@@ -244,17 +250,17 @@ |
NotificationStorage.markAsShown(notification.id); |
} |
/** |
* Initializes the notification system. |
*/ |
exports.initNotifications = () => |
{ |
- if ("notifications" in chrome) |
+ if ("notifications" in browser) |
initChromeNotifications(); |
initAntiAdblockNotification(); |
}; |
/** |
* Gets the active notification to be shown if any. |
* |
* @return {?object} |