| 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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1151       special: true | 1188       special: true | 
| 1152     }, | 1189     }, | 
| 1153     (subscriptions) => | 1190     (subscriptions) => | 
| 1154     { | 1191     { | 
| 1155       // Load filters | 1192       // Load filters | 
| 1156       for (let subscription of subscriptions) | 1193       for (let subscription of subscriptions) | 
| 1157       { | 1194       { | 
| 1158         browser.runtime.sendMessage({ | 1195         browser.runtime.sendMessage({ | 
| 1159           type: "filters.get", | 1196           type: "filters.get", | 
| 1160           subscriptionUrl: subscription.url | 1197           subscriptionUrl: subscription.url | 
| 1161         }, | 1198         }, loadCustomFilters); | 
| 1162         (filters) => |  | 
| 1163         { |  | 
| 1164           loadCustomFilters(filters); |  | 
| 1165         }); |  | 
| 1166       } | 1199       } | 
| 1167     }); | 1200     }); | 
| 1168     loadRecommendations(); | 1201     loadRecommendations(); | 
| 1169     browser.runtime.sendMessage({ | 1202     browser.runtime.sendMessage({ | 
| 1170       type: "prefs.get", | 1203       type: "prefs.get", | 
| 1171       key: "subscriptions_exceptionsurl" | 1204       key: "subscriptions_exceptionsurl" | 
| 1172     }, | 1205     }, | 
| 1173     (url) => | 1206     (url) => | 
| 1174     { | 1207     { | 
| 1175       acceptableAdsUrl = url; | 1208       acceptableAdsUrl = url; | 
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1288         setPrivacyConflict(); | 1321         setPrivacyConflict(); | 
| 1289         break; | 1322         break; | 
| 1290       case "downloading": | 1323       case "downloading": | 
| 1291       case "downloadStatus": | 1324       case "downloadStatus": | 
| 1292       case "homepage": | 1325       case "homepage": | 
| 1293       case "lastDownload": | 1326       case "lastDownload": | 
| 1294       case "title": | 1327       case "title": | 
| 1295         updateSubscription(subscription); | 1328         updateSubscription(subscription); | 
| 1296         break; | 1329         break; | 
| 1297       case "added": | 1330       case "added": | 
| 1298         let {url, recommended} = subscription; | 1331         let {url} = subscription; | 
| 1299         // Handle custom subscription | 1332         // Handle custom subscription | 
| 1300         if (/^~user/.test(url)) | 1333         if (/^~user/.test(url)) | 
| 1301         { | 1334         { | 
| 1302           loadCustomFilters(subscription.filters); | 1335           loadCustomFilters(subscription.filters); | 
| 1303           return; | 1336           return; | 
| 1304         } | 1337         } | 
| 1305         else if (url in subscriptionsMap) | 1338         else if (url in subscriptionsMap) | 
| 1306           updateSubscription(subscription); | 1339           updateSubscription(subscription); | 
| 1307         else | 1340         else | 
| 1308           addSubscription(subscription); | 1341           addSubscription(subscription); | 
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1469   }); | 1502   }); | 
| 1470   browser.runtime.sendMessage({ | 1503   browser.runtime.sendMessage({ | 
| 1471     type: "subscriptions.listen", | 1504     type: "subscriptions.listen", | 
| 1472     filter: ["added", "disabled", "homepage", "lastDownload", "removed", | 1505     filter: ["added", "disabled", "homepage", "lastDownload", "removed", | 
| 1473              "title", "downloadStatus", "downloading"] | 1506              "title", "downloadStatus", "downloading"] | 
| 1474   }); | 1507   }); | 
| 1475 | 1508 | 
| 1476   window.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 1509   window.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 
| 1477   window.addEventListener("hashchange", onHashChange, false); | 1510   window.addEventListener("hashchange", onHashChange, false); | 
| 1478 } | 1511 } | 
| OLD | NEW | 
|---|