| 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 if (paramValues.length > 0) | 43 if (paramValues.length > 0) |
| 44 { | 44 { |
| 45 let lastArg = paramValues[paramValues.length - 1]; | 45 let lastArg = paramValues[paramValues.length - 1]; |
| 46 if (typeof lastArg == "function") | 46 if (typeof lastArg == "function") |
| 47 callback = lastArg; | 47 callback = lastArg; |
| 48 | 48 |
| 49 for (let i = 0; i < paramValues.length - (callback ? 1 : 0); i++) | 49 for (let i = 0; i < paramValues.length - (callback ? 1 : 0); i++) |
| 50 message[paramKeys[i]] = paramValues[i]; | 50 message[paramKeys[i]] = paramValues[i]; |
| 51 } | 51 } |
| 52 | 52 |
| 53 chrome.runtime.sendMessage(message, callback); | 53 browser.runtime.sendMessage(message, callback); |
| 54 }; | 54 }; |
| 55 } | 55 } |
| 56 | 56 |
| 57 const getDocLink = wrapper({type: "app.get", what: "doclink"}, "link"); | 57 const getDocLink = wrapper({type: "app.get", what: "doclink"}, "link"); |
| 58 const getInfo = wrapper({type: "app.get"}, "what"); | 58 const getInfo = wrapper({type: "app.get"}, "what"); |
| 59 const getPref = wrapper({type: "prefs.get"}, "key"); | 59 const getPref = wrapper({type: "prefs.get"}, "key"); |
| 60 const togglePref = wrapper({type: "prefs.toggle"}, "key"); | 60 const togglePref = wrapper({type: "prefs.toggle"}, "key"); |
| 61 const getSubscriptions = wrapper({type: "subscriptions.get"}, | 61 const getSubscriptions = wrapper({type: "subscriptions.get"}, |
| 62 "downloadable", "special"); | 62 "downloadable", "special"); |
| 63 const removeSubscription = wrapper({type: "subscriptions.remove"}, "url"); | 63 const removeSubscription = wrapper({type: "subscriptions.remove"}, "url"); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 84 "filters_subscription_lastDownload_checksumMismatch"] | 84 "filters_subscription_lastDownload_checksumMismatch"] |
| 85 ]); | 85 ]); |
| 86 | 86 |
| 87 let delayedSubscriptionSelection = null; | 87 let delayedSubscriptionSelection = null; |
| 88 let acceptableAdsUrl; | 88 let acceptableAdsUrl; |
| 89 | 89 |
| 90 // Loads options from localStorage and sets UI elements accordingly | 90 // Loads options from localStorage and sets UI elements accordingly |
| 91 function loadOptions() | 91 function loadOptions() |
| 92 { | 92 { |
| 93 // Set page title to i18n version of "Adblock Plus Options" | 93 // Set page title to i18n version of "Adblock Plus Options" |
| 94 document.title = chrome.i18n.getMessage("options"); | 94 document.title = browser.i18n.getMessage("options"); |
| 95 | 95 |
| 96 // Set links | 96 // Set links |
| 97 getPref("subscriptions_exceptionsurl", url => | 97 getPref("subscriptions_exceptionsurl", url => |
| 98 { | 98 { |
| 99 acceptableAdsUrl = url; | 99 acceptableAdsUrl = url; |
| 100 $("#acceptableAdsLink").attr("href", acceptableAdsUrl); | 100 $("#acceptableAdsLink").attr("href", acceptableAdsUrl); |
| 101 }); | 101 }); |
| 102 getDocLink("acceptable_ads", url => | 102 getDocLink("acceptable_ads", url => |
| 103 { | 103 { |
| 104 $("#acceptableAdsDocs").attr("href", url); | 104 $("#acceptableAdsDocs").attr("href", url); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 if (!features.devToolsPanel) | 154 if (!features.devToolsPanel) |
| 155 document.getElementById("showDevtoolsPanelContainer").hidden = true; | 155 document.getElementById("showDevtoolsPanelContainer").hidden = true; |
| 156 }); | 156 }); |
| 157 getPref("notifications_showui", showNotificationsUI => | 157 getPref("notifications_showui", showNotificationsUI => |
| 158 { | 158 { |
| 159 if (!showNotificationsUI) | 159 if (!showNotificationsUI) |
| 160 document.getElementById("shouldShowNotificationsContainer").hidden = true; | 160 document.getElementById("shouldShowNotificationsContainer").hidden = true; |
| 161 }); | 161 }); |
| 162 | 162 |
| 163 // Register listeners in the background message responder | 163 // Register listeners in the background message responder |
| 164 chrome.runtime.sendMessage({ | 164 browser.runtime.sendMessage({ |
| 165 type: "app.listen", | 165 type: "app.listen", |
| 166 filter: ["addSubscription", "focusSection"] | 166 filter: ["addSubscription", "focusSection"] |
| 167 }); | 167 }); |
| 168 chrome.runtime.sendMessage({ | 168 browser.runtime.sendMessage({ |
| 169 type: "filters.listen", | 169 type: "filters.listen", |
| 170 filter: ["added", "loaded", "removed"] | 170 filter: ["added", "loaded", "removed"] |
| 171 }); | 171 }); |
| 172 chrome.runtime.sendMessage({ | 172 browser.runtime.sendMessage({ |
| 173 type: "prefs.listen", | 173 type: "prefs.listen", |
| 174 filter: ["notifications_ignoredcategories", "notifications_showui", | 174 filter: ["notifications_ignoredcategories", "notifications_showui", |
| 175 "show_devtools_panel", "shouldShowBlockElementMenu"] | 175 "show_devtools_panel", "shouldShowBlockElementMenu"] |
| 176 }); | 176 }); |
| 177 chrome.runtime.sendMessage({ | 177 browser.runtime.sendMessage({ |
| 178 type: "subscriptions.listen", | 178 type: "subscriptions.listen", |
| 179 filter: ["added", "disabled", "homepage", "lastDownload", "removed", | 179 filter: ["added", "disabled", "homepage", "lastDownload", "removed", |
| 180 "title", "downloadStatus", "downloading"] | 180 "title", "downloadStatus", "downloading"] |
| 181 }); | 181 }); |
| 182 | 182 |
| 183 // Load recommended subscriptions | 183 // Load recommended subscriptions |
| 184 loadRecommendations(); | 184 loadRecommendations(); |
| 185 | 185 |
| 186 // Show user's filters | 186 // Show user's filters |
| 187 reloadFilters(); | 187 reloadFilters(); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 { | 298 { |
| 299 selectedIndex = i; | 299 selectedIndex = i; |
| 300 selectedPrefix = prefix; | 300 selectedPrefix = prefix; |
| 301 } | 301 } |
| 302 } | 302 } |
| 303 } | 303 } |
| 304 list.appendChild(option); | 304 list.appendChild(option); |
| 305 } | 305 } |
| 306 | 306 |
| 307 let option = new Option(); | 307 let option = new Option(); |
| 308 let label = chrome.i18n.getMessage("filters_addSubscriptionOther_label"); | 308 let label = browser.i18n.getMessage("filters_addSubscriptionOther_label"); |
| 309 option.text = label + "\u2026"; | 309 option.text = label + "\u2026"; |
| 310 option._data = null; | 310 option._data = null; |
| 311 list.appendChild(option); | 311 list.appendChild(option); |
| 312 | 312 |
| 313 list.selectedIndex = selectedIndex; | 313 list.selectedIndex = selectedIndex; |
| 314 | 314 |
| 315 if (delayedSubscriptionSelection) | 315 if (delayedSubscriptionSelection) |
| 316 startSubscriptionSelection(...delayedSubscriptionSelection); | 316 startSubscriptionSelection(...delayedSubscriptionSelection); |
| 317 }); | 317 }); |
| 318 } | 318 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 let list = document.getElementById("subscriptionSelector"); | 358 let list = document.getElementById("subscriptionSelector"); |
| 359 let data = list.options[list.selectedIndex]._data; | 359 let data = list.options[list.selectedIndex]._data; |
| 360 if (data) | 360 if (data) |
| 361 addSubscription(data.url, data.title, data.homepage); | 361 addSubscription(data.url, data.title, data.homepage); |
| 362 else | 362 else |
| 363 { | 363 { |
| 364 let url = document.getElementById("customSubscriptionLocation") | 364 let url = document.getElementById("customSubscriptionLocation") |
| 365 .value.trim(); | 365 .value.trim(); |
| 366 if (!/^https?:/i.test(url)) | 366 if (!/^https?:/i.test(url)) |
| 367 { | 367 { |
| 368 alert(chrome.i18n.getMessage("global_subscription_invalid_location")); | 368 alert(browser.i18n.getMessage("global_subscription_invalid_location")); |
| 369 $("#customSubscriptionLocation").focus(); | 369 $("#customSubscriptionLocation").focus(); |
| 370 return; | 370 return; |
| 371 } | 371 } |
| 372 | 372 |
| 373 let title = document.getElementById("customSubscriptionTitle").value.trim(); | 373 let title = document.getElementById("customSubscriptionTitle").value.trim(); |
| 374 if (!title) | 374 if (!title) |
| 375 title = url; | 375 title = url; |
| 376 | 376 |
| 377 addSubscription(url, title, null); | 377 addSubscription(url, title, null); |
| 378 } | 378 } |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 414 | 414 |
| 415 let enabled = element.getElementsByClassName("subscriptionEnabled")[0]; | 415 let enabled = element.getElementsByClassName("subscriptionEnabled")[0]; |
| 416 enabled.checked = !subscription.disabled; | 416 enabled.checked = !subscription.disabled; |
| 417 | 417 |
| 418 let lastUpdate = element.getElementsByClassName("subscriptionUpdate")[0]; | 418 let lastUpdate = element.getElementsByClassName("subscriptionUpdate")[0]; |
| 419 lastUpdate.classList.remove("error"); | 419 lastUpdate.classList.remove("error"); |
| 420 | 420 |
| 421 let {downloadStatus} = subscription; | 421 let {downloadStatus} = subscription; |
| 422 if (subscription.isDownloading) | 422 if (subscription.isDownloading) |
| 423 { | 423 { |
| 424 lastUpdate.textContent = chrome.i18n.getMessage( | 424 lastUpdate.textContent = browser.i18n.getMessage( |
| 425 "filters_subscription_lastDownload_inProgress" | 425 "filters_subscription_lastDownload_inProgress" |
| 426 ); | 426 ); |
| 427 } | 427 } |
| 428 else if (downloadStatus && downloadStatus != "synchronize_ok") | 428 else if (downloadStatus && downloadStatus != "synchronize_ok") |
| 429 { | 429 { |
| 430 if (statusMessages.has(downloadStatus)) | 430 if (statusMessages.has(downloadStatus)) |
| 431 { | 431 { |
| 432 lastUpdate.textContent = chrome.i18n.getMessage( | 432 lastUpdate.textContent = browser.i18n.getMessage( |
| 433 statusMessages.get(downloadStatus) | 433 statusMessages.get(downloadStatus) |
| 434 ); | 434 ); |
| 435 } | 435 } |
| 436 else | 436 else |
| 437 lastUpdate.textContent = downloadStatus; | 437 lastUpdate.textContent = downloadStatus; |
| 438 lastUpdate.classList.add("error"); | 438 lastUpdate.classList.add("error"); |
| 439 } | 439 } |
| 440 else if (subscription.lastDownload > 0) | 440 else if (subscription.lastDownload > 0) |
| 441 { | 441 { |
| 442 let timeDate = i18nTimeDateStrings(subscription.lastDownload * 1000); | 442 let timeDate = i18nTimeDateStrings(subscription.lastDownload * 1000); |
| 443 let messageID = (timeDate[1] ? "last_updated_at" : "last_updated_at_today"); | 443 let messageID = (timeDate[1] ? "last_updated_at" : "last_updated_at_today"); |
| 444 lastUpdate.textContent = chrome.i18n.getMessage(messageID, timeDate); | 444 lastUpdate.textContent = browser.i18n.getMessage(messageID, timeDate); |
| 445 } | 445 } |
| 446 } | 446 } |
| 447 | 447 |
| 448 function onSubscriptionMessage(action, subscription) | 448 function onSubscriptionMessage(action, subscription) |
| 449 { | 449 { |
| 450 let element = findSubscriptionElement(subscription); | 450 let element = findSubscriptionElement(subscription); |
| 451 | 451 |
| 452 switch (action) | 452 switch (action) |
| 453 { | 453 { |
| 454 case "disabled": | 454 case "disabled": |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 649 element.removeAttribute("id"); | 649 element.removeAttribute("id"); |
| 650 element._subscription = subscription; | 650 element._subscription = subscription; |
| 651 | 651 |
| 652 let removeButton = element.getElementsByClassName( | 652 let removeButton = element.getElementsByClassName( |
| 653 "subscriptionRemoveButton" | 653 "subscriptionRemoveButton" |
| 654 )[0]; | 654 )[0]; |
| 655 removeButton.setAttribute("title", removeButton.textContent); | 655 removeButton.setAttribute("title", removeButton.textContent); |
| 656 removeButton.textContent = "\xD7"; | 656 removeButton.textContent = "\xD7"; |
| 657 removeButton.addEventListener("click", () => | 657 removeButton.addEventListener("click", () => |
| 658 { | 658 { |
| 659 if (!confirm(chrome.i18n.getMessage("global_remove_subscription_warning"))) | 659 if (!confirm(browser.i18n.getMessage("global_remove_subscription_warning"))) |
| 660 return; | 660 return; |
| 661 | 661 |
| 662 removeSubscription(subscription.url); | 662 removeSubscription(subscription.url); |
| 663 }, false); | 663 }, false); |
| 664 | 664 |
| 665 getPref("additional_subscriptions", additionalSubscriptions => | 665 getPref("additional_subscriptions", additionalSubscriptions => |
| 666 { | 666 { |
| 667 if (additionalSubscriptions.includes(subscription.url)) | 667 if (additionalSubscriptions.includes(subscription.url)) |
| 668 removeButton.style.visibility = "hidden"; | 668 removeButton.style.visibility = "hidden"; |
| 669 }); | 669 }); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 onFilterMessage(message.action, message.args[0]); | 739 onFilterMessage(message.action, message.args[0]); |
| 740 break; | 740 break; |
| 741 case "prefs.respond": | 741 case "prefs.respond": |
| 742 onPrefMessage(message.action, message.args[0]); | 742 onPrefMessage(message.action, message.args[0]); |
| 743 break; | 743 break; |
| 744 case "subscriptions.respond": | 744 case "subscriptions.respond": |
| 745 onSubscriptionMessage(message.action, message.args[0]); | 745 onSubscriptionMessage(message.action, message.args[0]); |
| 746 break; | 746 break; |
| 747 } | 747 } |
| 748 }); | 748 }); |
| OLD | NEW |