| 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 |