| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * This file is part of Adblock Plus <https://adblockplus.org/>, |    2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
|    3  * Copyright (C) 2006-present eyeo GmbH |    3  * Copyright (C) 2006-present eyeo GmbH | 
|    4  * |    4  * | 
|    5  * Adblock Plus is free software: you can redistribute it and/or modify |    5  * Adblock Plus is free software: you can redistribute it and/or modify | 
|    6  * it under the terms of the GNU General Public License version 3 as |    6  * it under the terms of the GNU General Public License version 3 as | 
|    7  * published by the Free Software Foundation. |    7  * published by the Free Software Foundation. | 
|    8  * |    8  * | 
|    9  * Adblock Plus is distributed in the hope that it will be useful, |    9  * Adblock Plus is distributed in the hope that it will be useful, | 
|   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of |   10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  324       return Promise.all(Object.keys(this._changes).map(change => |  324       return Promise.all(Object.keys(this._changes).map(change => | 
|  325       { |  325       { | 
|  326         // Firefox for Android displays the browser action not as an icon but |  326         // Firefox for Android displays the browser action not as an icon but | 
|  327         // as a menu item. There is no icon, but such an option may be added |  327         // as a menu item. There is no icon, but such an option may be added | 
|  328         // in the future. |  328         // in the future. | 
|  329         // https://bugzilla.mozilla.org/show_bug.cgi?id=1331746 |  329         // https://bugzilla.mozilla.org/show_bug.cgi?id=1331746 | 
|  330         if (change == "iconPath" && "setIcon" in browser.browserAction) |  330         if (change == "iconPath" && "setIcon" in browser.browserAction) | 
|  331         { |  331         { | 
|  332           let path = { |  332           let path = { | 
|  333             16: this._changes.iconPath.replace("$size", "16"), |  333             16: this._changes.iconPath.replace("$size", "16"), | 
|  334             19: this._changes.iconPath.replace("$size", "19"), |  | 
|  335             20: this._changes.iconPath.replace("$size", "20"), |  334             20: this._changes.iconPath.replace("$size", "20"), | 
|  336             32: this._changes.iconPath.replace("$size", "32"), |  335             32: this._changes.iconPath.replace("$size", "32"), | 
|  337             38: this._changes.iconPath.replace("$size", "38"), |  | 
|  338             40: this._changes.iconPath.replace("$size", "40") |  336             40: this._changes.iconPath.replace("$size", "40") | 
|  339           }; |  337           }; | 
|  340           try |  338           try | 
|  341           { |  339           { | 
|  342             return browser.browserAction.setIcon({tabId: this._tabId, path}); |  340             return browser.browserAction.setIcon({tabId: this._tabId, path}); | 
|  343           } |  341           } | 
|  344           catch (e) |  342           catch (e) | 
|  345           { |  343           { | 
|  346             // Edge throws if passed icon sizes different than 19,20,38,40px. |  344             // Edge throws if passed icon sizes different than 19,20,38,40px. | 
|  347             delete path[16]; |  345             delete path[16]; | 
|  348             delete path[32]; |  346             delete path[32]; | 
|  349             return browser.browserAction.setIcon({tabId: this._tabId, path}); |  347             return browser.browserAction.setIcon({tabId: this._tabId, path}); | 
|  350           } |  348           } | 
|  351         } |  349         } | 
|  352  |  350  | 
 |  351         if (change == "iconImageData" && "setIcon" in browser.browserAction) | 
 |  352         { | 
 |  353           return browser.browserAction.setIcon({ | 
 |  354             tabId: this._tabId, | 
 |  355             imageData: this._changes.iconImageData | 
 |  356           }); | 
 |  357         } | 
 |  358  | 
|  353         // There is no badge on Firefox for Android; the browser action is |  359         // There is no badge on Firefox for Android; the browser action is | 
|  354         // simply a menu item. |  360         // simply a menu item. | 
|  355         if (change == "badgeText" && "setBadgeText" in browser.browserAction) |  361         if (change == "badgeText" && "setBadgeText" in browser.browserAction) | 
|  356           return browser.browserAction.setBadgeText({ |  362           return browser.browserAction.setBadgeText({ | 
|  357             tabId: this._tabId, |  363             tabId: this._tabId, | 
|  358             text: this._changes.badgeText |  364             text: this._changes.badgeText | 
|  359           }); |  365           }); | 
|  360  |  366  | 
|  361         // There is no badge on Firefox for Android; the browser action is |  367         // There is no badge on Firefox for Android; the browser action is | 
|  362         // simply a menu item. |  368         // simply a menu item. | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
|  392           this._changes = null; |  398           this._changes = null; | 
|  393         }).catch(() => |  399         }).catch(() => | 
|  394         { |  400         { | 
|  395           // If the tab is prerendered, browser.browserAction.set* fails |  401           // If the tab is prerendered, browser.browserAction.set* fails | 
|  396           // and we have to delay our changes until the currently visible tab |  402           // and we have to delay our changes until the currently visible tab | 
|  397           // is replaced with the prerendered tab. |  403           // is replaced with the prerendered tab. | 
|  398           browser.tabs.onReplaced.addListener(onReplaced); |  404           browser.tabs.onReplaced.addListener(onReplaced); | 
|  399         }); |  405         }); | 
|  400       } |  406       } | 
|  401     }, |  407     }, | 
|  402     setIcon(path) |  408     setIcon(path, imageData = null) | 
|  403     { |  409     { | 
|  404       this._addChange("iconPath", path); |  410       // Use ImageData if available. | 
 |  411       if (imageData) | 
 |  412         this._addChange("iconImageData", imageData); | 
 |  413       else | 
 |  414         this._addChange("iconPath", path); | 
|  405     }, |  415     }, | 
|  406     setBadge(badge) |  416     setBadge(badge) | 
|  407     { |  417     { | 
|  408       if (!badge) |  418       if (!badge) | 
|  409       { |  419       { | 
|  410         this._addChange("badgeText", ""); |  420         this._addChange("badgeText", ""); | 
|  411       } |  421       } | 
|  412       else |  422       else | 
|  413       { |  423       { | 
|  414         if ("number" in badge) |  424         if ("number" in badge) | 
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  519           return frames.get(0) || null; |  529           return frames.get(0) || null; | 
|  520         } |  530         } | 
|  521       }; |  531       }; | 
|  522     } |  532     } | 
|  523  |  533  | 
|  524     return ext.onMessage._dispatch( |  534     return ext.onMessage._dispatch( | 
|  525       message, sender, sendResponse |  535       message, sender, sendResponse | 
|  526     ).includes(true); |  536     ).includes(true); | 
|  527   }); |  537   }); | 
|  528 } |  538 } | 
| OLD | NEW |