| 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 529 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   540         if (returnElement) |   540         if (returnElement) | 
|   541           return element; |   541           return element; | 
|   542         return element.getAttribute("data-" + dataName); |   542         return element.getAttribute("data-" + dataName); | 
|   543       } |   543       } | 
|   544  |   544  | 
|   545       element = element.parentElement; |   545       element = element.parentElement; | 
|   546     } |   546     } | 
|   547     return null; |   547     return null; | 
|   548   } |   548   } | 
|   549  |   549  | 
|   550   function sendMessageHandleErrors(message, onSuccess) |   550   function sendMessageHandleErrors(message, callback) | 
|   551   { |   551   { | 
|   552     browser.runtime.sendMessage(message, (errors) => |   552     browser.runtime.sendMessage(message, (errors) => | 
|   553     { |   553     { | 
|   554       if (errors.length > 0) |   554       if (callback) | 
|   555         alert(errors.join("\n")); |   555       { | 
|   556       else if (onSuccess) |   556         if (errors.length > 0) | 
|   557         onSuccess(); |   557           callback(errors); | 
 |   558         else | 
 |   559           callback(); | 
 |   560       } | 
|   558     }); |   561     }); | 
|   559   } |   562   } | 
|   560  |   563  | 
|   561   function switchTab(id) |   564   function switchTab(id) | 
|   562   { |   565   { | 
|   563     location.hash = id; |   566     location.hash = id; | 
|   564   } |   567   } | 
|   565  |   568  | 
|   566   function execAction(action, element) |   569   function execAction(action, element) | 
|   567   { |   570   { | 
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   641           text: findParentData(element, "access", false) |   644           text: findParentData(element, "access", false) | 
|   642         }); |   645         }); | 
|   643         break; |   646         break; | 
|   644       case "remove-subscription": |   647       case "remove-subscription": | 
|   645         browser.runtime.sendMessage({ |   648         browser.runtime.sendMessage({ | 
|   646           type: "subscriptions.remove", |   649           type: "subscriptions.remove", | 
|   647           url: findParentData(element, "access", false) |   650           url: findParentData(element, "access", false) | 
|   648         }); |   651         }); | 
|   649         break; |   652         break; | 
|   650       case "save-custom-filters": |   653       case "save-custom-filters": | 
 |   654         const filters = E("custom-filters-raw").value; | 
|   651         sendMessageHandleErrors({ |   655         sendMessageHandleErrors({ | 
|   652           type: "filters.importRaw", |   656           type: "filters.importRaw", | 
|   653           text: E("custom-filters-raw").value, |   657           text: filters, | 
|   654           removeExisting: true |   658           removeExisting: true | 
|   655         }, |   659         }, | 
|   656         () => |   660         (errors) => | 
|   657         { |   661         { | 
|   658           setCustomFiltersView("read"); |   662           if (errors) | 
 |   663           { | 
 |   664             E("custom-filters").classList.add("warning"); | 
 |   665             const customFiltersError = clearAndGetCustomFiltersError(); | 
 |   666  | 
 |   667             // The current error does not contain info about the line | 
 |   668             // that generated such error. | 
 |   669             // Whenever the error object will pass the bad filter | 
 |   670             // within its properties, this split should be removed. | 
 |   671             const lines = filters.split("\n"); | 
 |   672             const messages = errors.map(error => lines[error.lineno - 1]); | 
 |   673             for (const message of messages) | 
 |   674             { | 
 |   675               const li = document.createElement("li"); | 
 |   676               customFiltersError.appendChild(li).textContent = message; | 
 |   677             } | 
 |   678             if (errors.length > 5) | 
 |   679               customFiltersError.classList.add("many"); | 
 |   680           } | 
 |   681           else | 
 |   682           { | 
 |   683             setCustomFiltersView("read"); | 
 |   684           } | 
|   659         }); |   685         }); | 
|   660         break; |   686         break; | 
|   661       case "show-more-filters-section": |   687       case "show-more-filters-section": | 
|   662         E("more-filters").setAttribute("aria-hidden", false); |   688         E("more-filters").setAttribute("aria-hidden", false); | 
|   663         break; |   689         break; | 
|   664       case "switch-acceptable-ads": |   690       case "switch-acceptable-ads": | 
|   665         let value = element.value || element.dataset.value; |   691         let value = element.value || element.dataset.value; | 
|   666         // User check the checkbox |   692         // User check the checkbox | 
|   667         let shouldCheck = element.getAttribute("aria-checked") != "true"; |   693         let shouldCheck = element.getAttribute("aria-checked") != "true"; | 
|   668         let installAcceptableAds = false; |   694         let installAcceptableAds = false; | 
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   742           closeDialog(); |   768           closeDialog(); | 
|   743         } |   769         } | 
|   744         else |   770         else | 
|   745         { |   771         { | 
|   746           form.querySelector(":invalid").focus(); |   772           form.querySelector(":invalid").focus(); | 
|   747         } |   773         } | 
|   748         break; |   774         break; | 
|   749     } |   775     } | 
|   750   } |   776   } | 
|   751  |   777  | 
 |   778   function clearAndGetCustomFiltersError() | 
 |   779   { | 
 |   780     const customFiltersError = E("custom-filters-error"); | 
 |   781     customFiltersError.textContent = ""; | 
 |   782     customFiltersError.classList.remove("many"); | 
 |   783     return customFiltersError; | 
 |   784   } | 
 |   785  | 
|   752   function setCustomFiltersView(mode) |   786   function setCustomFiltersView(mode) | 
|   753   { |   787   { | 
|   754     let customFiltersElement = E("custom-filters-raw"); |   788     let customFiltersElement = E("custom-filters-raw"); | 
|   755     updateCustomFiltersUi(); |   789     updateCustomFiltersUi(); | 
|   756     if (mode == "read") |   790     if (mode == "read") | 
|   757     { |   791     { | 
 |   792       E("custom-filters").classList.remove("warning"); | 
 |   793       clearAndGetCustomFiltersError(); | 
|   758       customFiltersElement.disabled = true; |   794       customFiltersElement.disabled = true; | 
|   759       if (!customFiltersElement.value) |   795       if (!customFiltersElement.value) | 
|   760       { |   796       { | 
|   761         setCustomFiltersView("empty"); |   797         setCustomFiltersView("empty"); | 
|   762         return; |   798         return; | 
|   763       } |   799       } | 
|   764     } |   800     } | 
|   765     else if (mode == "write") |   801     else if (mode == "write") | 
|   766     { |   802     { | 
|   767       customFiltersElement.disabled = false; |   803       customFiltersElement.disabled = false; | 
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   911  |   947  | 
|   912     // General tab |   948     // General tab | 
|   913     getDocLink("contribute", (link) => |   949     getDocLink("contribute", (link) => | 
|   914     { |   950     { | 
|   915       E("contribute").href = link; |   951       E("contribute").href = link; | 
|   916     }); |   952     }); | 
|   917     getDocLink("acceptable_ads_criteria", (link) => |   953     getDocLink("acceptable_ads_criteria", (link) => | 
|   918     { |   954     { | 
|   919       setLinks("enable-acceptable-ads-description", link); |   955       setLinks("enable-acceptable-ads-description", link); | 
|   920     }); |   956     }); | 
|   921     setElementText(E("tracking-warning-1"), "options_tracking_warning_1",  |   957     setElementText(E("tracking-warning-1"), "options_tracking_warning_1", | 
|   922       [getMessage("common_feature_privacy_title"), |   958       [getMessage("common_feature_privacy_title"), | 
|   923       getMessage("options_acceptableAds_ads_label")]); |   959        getMessage("options_acceptableAds_ads_label")]); | 
|   924     setElementText(E("tracking-warning-3"), "options_tracking_warning_3",  |   960     setElementText(E("tracking-warning-3"), "options_tracking_warning_3", | 
|   925       [getMessage("options_acceptableAds_privacy_label")]); |   961       [getMessage("options_acceptableAds_privacy_label")]); | 
|   926  |   962  | 
|   927     getDocLink("privacy_friendly_ads", (link) => |   963     getDocLink("privacy_friendly_ads", (link) => | 
|   928     { |   964     { | 
|   929       E("enable-acceptable-ads-privacy-description").href = link; |   965       E("enable-acceptable-ads-privacy-description").href = link; | 
|   930     }); |   966     }); | 
|   931     getDocLink("adblock_plus_{browser}_dnt", url => |   967     getDocLink("adblock_plus_{browser}_dnt", url => | 
|   932     { |   968     { | 
|   933       setLinks("dnt", url); |   969       setLinks("dnt", url); | 
|   934     }); |   970     }); | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
|   956       type: "app.get", |   992       type: "app.get", | 
|   957       what: "features" |   993       what: "features" | 
|   958     }, |   994     }, | 
|   959     (features) => |   995     (features) => | 
|   960     { |   996     { | 
|   961       hidePref("show_devtools_panel", !features.devToolsPanel); |   997       hidePref("show_devtools_panel", !features.devToolsPanel); | 
|   962     }); |   998     }); | 
|   963  |   999  | 
|   964     getDocLink("filterdoc", (link) => |  1000     getDocLink("filterdoc", (link) => | 
|   965     { |  1001     { | 
|   966       E("link-filters").setAttribute("href", link); |  1002       E("link-filters-1").setAttribute("href", link); | 
 |  1003       E("link-filters-2").setAttribute("href", link); | 
|   967     }); |  1004     }); | 
|   968  |  1005  | 
|   969     getDocLink("subscriptions", (link) => |  1006     getDocLink("subscriptions", (link) => | 
|   970     { |  1007     { | 
|   971       E("filter-lists-learn-more").setAttribute("href", link); |  1008       E("filter-lists-learn-more").setAttribute("href", link); | 
|   972     }); |  1009     }); | 
|   973  |  1010  | 
|   974     E("custom-filters-raw").setAttribute("placeholder", |  1011     E("custom-filters-raw").setAttribute("placeholder", | 
|   975       getMessage("options_customFilters_edit_placeholder", ["/ads/track/*"])); |  1012       getMessage("options_customFilters_edit_placeholder", ["/ads/track/*"])); | 
|   976  |  1013  | 
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1288         setPrivacyConflict(); |  1325         setPrivacyConflict(); | 
|  1289         break; |  1326         break; | 
|  1290       case "downloading": |  1327       case "downloading": | 
|  1291       case "downloadStatus": |  1328       case "downloadStatus": | 
|  1292       case "homepage": |  1329       case "homepage": | 
|  1293       case "lastDownload": |  1330       case "lastDownload": | 
|  1294       case "title": |  1331       case "title": | 
|  1295         updateSubscription(subscription); |  1332         updateSubscription(subscription); | 
|  1296         break; |  1333         break; | 
|  1297       case "added": |  1334       case "added": | 
|  1298         let {url, recommended} = subscription; |  1335         let {url} = subscription; | 
|  1299         // Handle custom subscription |  1336         // Handle custom subscription | 
|  1300         if (/^~user/.test(url)) |  1337         if (/^~user/.test(url)) | 
|  1301         { |  1338         { | 
|  1302           loadCustomFilters(subscription.filters); |  1339           loadCustomFilters(subscription.filters); | 
|  1303           return; |  1340           return; | 
|  1304         } |  1341         } | 
|  1305         else if (url in subscriptionsMap) |  1342         else if (url in subscriptionsMap) | 
|  1306           updateSubscription(subscription); |  1343           updateSubscription(subscription); | 
|  1307         else |  1344         else | 
|  1308           addSubscription(subscription); |  1345           addSubscription(subscription); | 
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1469   }); |  1506   }); | 
|  1470   browser.runtime.sendMessage({ |  1507   browser.runtime.sendMessage({ | 
|  1471     type: "subscriptions.listen", |  1508     type: "subscriptions.listen", | 
|  1472     filter: ["added", "disabled", "homepage", "lastDownload", "removed", |  1509     filter: ["added", "disabled", "homepage", "lastDownload", "removed", | 
|  1473              "title", "downloadStatus", "downloading"] |  1510              "title", "downloadStatus", "downloading"] | 
|  1474   }); |  1511   }); | 
|  1475  |  1512  | 
|  1476   window.addEventListener("DOMContentLoaded", onDOMLoaded, false); |  1513   window.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 
|  1477   window.addEventListener("hashchange", onHashChange, false); |  1514   window.addEventListener("hashchange", onHashChange, false); | 
|  1478 } |  1515 } | 
| OLD | NEW |