| 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 | 
| 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| 12  * GNU General Public License for more details. | 12  * GNU General Public License for more details. | 
| 13  * | 13  * | 
| 14  * You should have received a copy of the GNU General Public License | 14  * You should have received a copy of the GNU General Public License | 
| 15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
| 16  */ | 16  */ | 
| 17 | 17 | 
| 18 /** @module uninstall */ | 18 /** @module uninstall */ | 
| 19 | 19 | 
| 20 "use strict"; | 20 "use strict"; | 
| 21 | 21 | 
| 22 const info = require("../buildtools/info"); | 22 const info = require("../buildtools/info"); | 
|  | 23 const {isDataCorrupted} = require("./subscriptionInit.js"); | 
| 23 const {Prefs} = require("./prefs"); | 24 const {Prefs} = require("./prefs"); | 
| 24 const {Utils} = require("./utils"); | 25 const {Utils} = require("./utils"); | 
| 25 | 26 | 
| 26 function setUninstallURL() | 27 let setUninstallURL = | 
|  | 28 /** | 
|  | 29  * Sets (or updates) the URL that is openend when the extension is uninstalled. | 
|  | 30  * | 
|  | 31  * Must be called after prefs got initialized and a data corruption | 
|  | 32  * if any was detected, as well when notification data change. | 
|  | 33  */ | 
|  | 34 exports.setUninstallURL = () => | 
| 27 { | 35 { | 
| 28   let search = []; | 36   let search = []; | 
| 29   for (let key of ["addonName", "addonVersion", "application", | 37   for (let key of ["addonName", "addonVersion", "application", | 
| 30                    "applicationVersion", "platform", "platformVersion"]) | 38                    "applicationVersion", "platform", "platformVersion"]) | 
| 31     search.push(key + "=" + encodeURIComponent(info[key])); | 39     search.push(key + "=" + encodeURIComponent(info[key])); | 
| 32 | 40 | 
| 33   let downlCount = Prefs.notificationdata.downloadCount || 0; | 41   let downlCount = Prefs.notificationdata.downloadCount || 0; | 
| 34 | 42 | 
| 35   if (downlCount > 4) | 43   if (downlCount > 4) | 
| 36   { | 44   { | 
| 37     if (downlCount < 8) | 45     if (downlCount < 8) | 
| 38       downlCount = "5-7"; | 46       downlCount = "5-7"; | 
| 39     else if (downlCount < 30) | 47     else if (downlCount < 30) | 
| 40       downlCount = "8-29"; | 48       downlCount = "8-29"; | 
| 41     else if (downlCount < 90) | 49     else if (downlCount < 90) | 
| 42       downlCount = "30-89"; | 50       downlCount = "30-89"; | 
| 43     else if (downlCount < 180) | 51     else if (downlCount < 180) | 
| 44       downlCount = "90-179"; | 52       downlCount = "90-179"; | 
| 45     else | 53     else | 
| 46       downlCount = "180+"; | 54       downlCount = "180+"; | 
| 47   } | 55   } | 
| 48 | 56 | 
| 49   search.push("notificationDownloadCount=" + encodeURIComponent(downlCount)); | 57   search.push("notificationDownloadCount=" + encodeURIComponent(downlCount)); | 
|  | 58   search.push("dataCorrupted=" + (isDataCorrupted() ? "1" : "0")); | 
| 50 | 59 | 
| 51   browser.runtime.setUninstallURL(Utils.getDocLink("uninstalled") + "&" + | 60   browser.runtime.setUninstallURL(Utils.getDocLink("uninstalled") + "&" + | 
| 52                                   search.join("&")); | 61                                   search.join("&")); | 
| 53 } | 62 }; | 
| 54 | 63 | 
| 55 // The uninstall URL contains the notification download count as a parameter, | 64 Prefs.on("notificationdata", setUninstallURL); | 
| 56 // therefore we must wait for preferences to be loaded before generating the |  | 
| 57 // URL and we need to re-generate it each time the notification data changes. |  | 
| 58 if ("setUninstallURL" in browser.runtime) |  | 
| 59 { |  | 
| 60   Prefs.untilLoaded.then(setUninstallURL); |  | 
| 61   Prefs.on("notificationdata", setUninstallURL); |  | 
| 62 } |  | 
| OLD | NEW | 
|---|