Protected notification api calls

Firefox on Android does not support all of them.

Fixes #276
This commit is contained in:
kkapsner 2018-10-02 19:23:59 +02:00
parent d4d0d80721
commit 3a7c15157c
1 changed files with 45 additions and 28 deletions

View File

@ -52,9 +52,11 @@
}
};
browser.browserAction.setBadgeBackgroundColor({
color: "rgba(255, 0, 0, 0.6)"
});
if (browser.browserAction.setBadgeBackgroundColor){
browser.browserAction.setBadgeBackgroundColor({
color: "rgba(255, 0, 0, 0.6)"
});
}
const tabsData = new Map();
function getTabData(tabId){
@ -80,19 +82,26 @@
!lists.get("ignore").match(url)
){
browser.pageAction.show(tabId);
browser.pageAction.setIcon({
if (browser.pageAction.setIcon){
browser.pageAction.setIcon({
tabId: tabId,
path: paths.pageAction[settings.highlightPageAction]
});
}
}
if (browser.browserAction.setIcon){
browser.browserAction.setIcon({
tabId: tabId,
path: paths.pageAction[settings.highlightPageAction]
path: paths.browserAction[getBrowserActionIconName(tabData, true)]
});
}
browser.browserAction.setIcon({
tabId: tabId,
path: paths.browserAction[getBrowserActionIconName(tabData, true)]
});
const apis = tabData.apis;
apis.add(api);
if (settings.get("displayBadge", url)){
if (
settings.get("displayBadge", url) &&
browser.browserAction.setBadgeText
){
browser.browserAction.setBadgeText({
tabId: tabId,
text: apis.size > 1? apis.size.toString(): api.charAt(0).toUpperCase()
@ -126,18 +135,24 @@
tabData.whitelisted = isWhitelisted(url);
browser.pageAction.hide(tabId);
browser.pageAction.setIcon({
tabId: tabId,
path: paths.pageAction.none
});
browser.browserAction.setIcon({
tabId: tabId,
path: paths.browserAction[getBrowserActionIconName(tabData, false)]
});
browser.browserAction.setBadgeText({
tabId: tabId,
text: ""
});
if (browser.pageAction.setIcon){
browser.pageAction.setIcon({
tabId: tabId,
path: paths.pageAction.none
});
}
if (browser.browserAction.setIcon){
browser.browserAction.setIcon({
tabId: tabId,
path: paths.browserAction[getBrowserActionIconName(tabData, false)]
});
}
if (browser.browserAction.setBadgeText){
browser.browserAction.setBadgeText({
tabId: tabId,
text: ""
});
}
let browserActionTitle = browser.i18n.getMessage("browserAction_title_default");
if (tabData.whitelisted){
browserActionTitle += browser.i18n.getMessage("browserAction_title_whitelisted").replace(/{url}/g, url);
@ -165,14 +180,16 @@
settings.on("displayBadge", function({newValue}){
if (!newValue){
logging.message("badge was disabled -> hide all badges");
browser.tabs.query({}).then(function(tabs){
tabs.forEach(function(tab){
browser.browserAction.setBadgeText({
tabId: tab.id,
text: ""
if (browser.browserAction.setBadgeText){
browser.tabs.query({}).then(function(tabs){
tabs.forEach(function(tab){
browser.browserAction.setBadgeText({
tabId: tab.id,
text: ""
});
});
});
});
}
}
});
}());