Index: ext/background.js |
=================================================================== |
--- a/ext/background.js |
+++ b/ext/background.js |
@@ -322,43 +322,60 @@ |
this._tabId = tabId; |
this._changes = null; |
}; |
BrowserAction.prototype = { |
_applyChanges() |
{ |
if ("iconPath" in this._changes) |
{ |
- chrome.browserAction.setIcon({ |
- tabId: this._tabId, |
- path: { |
- 16: this._changes.iconPath.replace("$size", "16"), |
- 19: this._changes.iconPath.replace("$size", "19"), |
- 20: this._changes.iconPath.replace("$size", "20"), |
- 32: this._changes.iconPath.replace("$size", "32"), |
- 38: this._changes.iconPath.replace("$size", "38"), |
- 40: this._changes.iconPath.replace("$size", "40") |
- } |
- }); |
+ // Firefox for Android displays the browser action not as an icon but |
+ // as a menu item. There is no icon, but such an option may be added in |
+ // the future. |
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1331746 |
+ if ("setIcon" in chrome.browserAction) |
+ { |
+ chrome.browserAction.setIcon({ |
+ tabId: this._tabId, |
+ path: { |
+ 16: this._changes.iconPath.replace("$size", "16"), |
+ 19: this._changes.iconPath.replace("$size", "19"), |
+ 20: this._changes.iconPath.replace("$size", "20"), |
+ 32: this._changes.iconPath.replace("$size", "32"), |
+ 38: this._changes.iconPath.replace("$size", "38"), |
+ 40: this._changes.iconPath.replace("$size", "40") |
+ } |
+ }); |
+ } |
} |
if ("badgeText" in this._changes) |
{ |
- chrome.browserAction.setBadgeText({ |
- tabId: this._tabId, |
- text: this._changes.badgeText |
- }); |
+ // There is no badge on Firefox for Android; the browser action is |
+ // simply a menu item. |
+ if ("setBadgeText" in chrome.browserAction) |
+ { |
+ chrome.browserAction.setBadgeText({ |
+ tabId: this._tabId, |
+ text: this._changes.badgeText |
+ }); |
+ } |
} |
if ("badgeColor" in this._changes) |
{ |
- chrome.browserAction.setBadgeBackgroundColor({ |
- tabId: this._tabId, |
- color: this._changes.badgeColor |
- }); |
+ // There is no badge on Firefox for Android; the browser action is |
+ // simply a menu item. |
+ if ("setBadgeBackgroundColor" in chrome.browserAction) |
+ { |
+ chrome.browserAction.setBadgeBackgroundColor({ |
+ tabId: this._tabId, |
+ color: this._changes.badgeColor |
+ }); |
+ } |
} |
this._changes = null; |
}, |
_queueChanges() |
{ |
chrome.tabs.get(this._tabId, () => |
{ |