| LEFT | RIGHT |
| 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 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 } | 425 } |
| 426 } | 426 } |
| 427 | 427 |
| 428 function updateFilter(filter) | 428 function updateFilter(filter) |
| 429 { | 429 { |
| 430 let match = filter.text.match(whitelistedDomainRegexp); | 430 let match = filter.text.match(whitelistedDomainRegexp); |
| 431 if (match && !filtersMap[filter.text]) | 431 if (match && !filtersMap[filter.text]) |
| 432 { | 432 { |
| 433 filter.title = match[1]; | 433 filter.title = match[1]; |
| 434 collections.whitelist.addItem(filter); | 434 collections.whitelist.addItem(filter); |
| 435 if (isCustomFiltersLoaded) |
| 436 { |
| 437 let text = getMessage("options_whitelist_notification", [filter.title]); |
| 438 showNotification(text); |
| 439 } |
| 435 } | 440 } |
| 436 else | 441 else |
| 437 { | 442 { |
| 438 customFilters.push(filter.text); | 443 customFilters.push(filter.text); |
| 439 if (isCustomFiltersLoaded) | 444 if (isCustomFiltersLoaded) |
| 440 updateCustomFiltersUi(); | 445 updateCustomFiltersUi(); |
| 441 } | 446 } |
| 442 | 447 |
| 443 filtersMap[filter.text] = filter; | 448 filtersMap[filter.text] = filter; |
| 444 } | 449 } |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 570 break; | 575 break; |
| 571 } | 576 } |
| 572 } | 577 } |
| 573 break; | 578 break; |
| 574 case "close-dialog": | 579 case "close-dialog": |
| 575 closeDialog(); | 580 closeDialog(); |
| 576 break; | 581 break; |
| 577 case "edit-custom-filters": | 582 case "edit-custom-filters": |
| 578 setCustomFiltersView("write"); | 583 setCustomFiltersView("write"); |
| 579 break; | 584 break; |
| 585 case "hide-notification": |
| 586 hideNotification(); |
| 587 break; |
| 580 case "import-subscription": { | 588 case "import-subscription": { |
| 581 let url = E("blockingList-textbox").value; | 589 let url = E("blockingList-textbox").value; |
| 582 addEnableSubscription(url); | 590 addEnableSubscription(url); |
| 583 closeDialog(); | 591 closeDialog(); |
| 584 break; | 592 break; |
| 585 } | 593 } |
| 586 case "open-context-menu": { | 594 case "open-context-menu": { |
| 587 let listItem = findParentData(element, "access", true); | 595 let listItem = findParentData(element, "access", true); |
| 588 if (listItem && !listItem.classList.contains("show-context-menu")) | 596 if (listItem && !listItem.classList.contains("show-context-menu")) |
| 589 listItem.classList.add("show-context-menu"); | 597 listItem.classList.add("show-context-menu"); |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 763 // Show tab content | 771 // Show tab content |
| 764 document.body.setAttribute("data-tab", tabId); | 772 document.body.setAttribute("data-tab", tabId); |
| 765 | 773 |
| 766 // Select tab | 774 // Select tab |
| 767 let tabList = container.querySelector("[role='tablist']"); | 775 let tabList = container.querySelector("[role='tablist']"); |
| 768 if (!tabList) | 776 if (!tabList) |
| 769 return null; | 777 return null; |
| 770 | 778 |
| 771 let previousTab = tabList.querySelector("[aria-selected]"); | 779 let previousTab = tabList.querySelector("[aria-selected]"); |
| 772 previousTab.removeAttribute("aria-selected"); | 780 previousTab.removeAttribute("aria-selected"); |
| 781 previousTab.setAttribute("tabindex", -1); |
| 773 | 782 |
| 774 let tab = tabList.querySelector("a[href='#" + tabId + "']"); | 783 let tab = tabList.querySelector("a[href='#" + tabId + "']"); |
| 775 tab.setAttribute("aria-selected", true); | 784 tab.setAttribute("aria-selected", true); |
| 785 tab.setAttribute("tabindex", 0); |
| 776 | 786 |
| 777 let tabContentId = tab.getAttribute("aria-controls"); | 787 let tabContentId = tab.getAttribute("aria-controls"); |
| 778 let tabContent = document.getElementById(tabContentId); | 788 let tabContent = document.getElementById(tabContentId); |
| 779 | 789 |
| 780 if (tab && focus) | 790 if (tab && focus) |
| 781 tab.focus(); | 791 tab.focus(); |
| 782 | 792 |
| 783 return tabContent; | 793 return tabContent; |
| 784 } | 794 } |
| 785 | 795 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 868 | 878 |
| 869 getDocLink("subscriptions", (link) => | 879 getDocLink("subscriptions", (link) => |
| 870 { | 880 { |
| 871 setLinks("filter-lists-description", link); | 881 setLinks("filter-lists-description", link); |
| 872 }); | 882 }); |
| 873 | 883 |
| 874 E("custom-filters-raw").setAttribute("placeholder", | 884 E("custom-filters-raw").setAttribute("placeholder", |
| 875 getMessage("options_customFilters_edit_placeholder", ["/ads/track/*"])); | 885 getMessage("options_customFilters_edit_placeholder", ["/ads/track/*"])); |
| 876 | 886 |
| 877 // Help tab | 887 // Help tab |
| 878 getDocLink("faq", (link) => | 888 getDocLink("adblock_plus_report_issue", (link) => |
| 879 { | 889 { |
| 880 E("link-faq").setAttribute("href", link); | 890 setLinks("report-issue", link); |
| 891 }); |
| 892 getDocLink("adblock_plus_report_ad", (link) => |
| 893 { |
| 894 setLinks("report-ad", link); |
| 895 }); |
| 896 getDocLink("adblock_plus_report_bug", (link) => |
| 897 { |
| 898 setLinks("report-bug", link); |
| 899 }); |
| 900 getDocLink("reporter_other_link", (link) => |
| 901 { |
| 902 setLinks("report-forum", link); |
| 881 }); | 903 }); |
| 882 getDocLink("social_twitter", (link) => | 904 getDocLink("social_twitter", (link) => |
| 883 { | 905 { |
| 884 E("link-twitter").setAttribute("href", link); | 906 E("twitter").setAttribute("href", link); |
| 885 }); | 907 }); |
| 886 getDocLink("social_facebook", (link) => | 908 getDocLink("social_facebook", (link) => |
| 887 { | 909 { |
| 888 E("link-facebook").setAttribute("href", link); | 910 E("facebook").setAttribute("href", link); |
| 889 }); | 911 }); |
| 890 getDocLink("social_gplus", (link) => | 912 getDocLink("social_gplus", (link) => |
| 891 { | 913 { |
| 892 E("link-gplus").setAttribute("href", link); | 914 E("google-plus").setAttribute("href", link); |
| 893 }); | |
| 894 getDocLink("social_renren", (link) => | |
| 895 { | |
| 896 E("link-renren").setAttribute("href", link); | |
| 897 }); | 915 }); |
| 898 getDocLink("social_weibo", (link) => | 916 getDocLink("social_weibo", (link) => |
| 899 { | 917 { |
| 900 E("link-weibo").setAttribute("href", link); | 918 E("weibo").setAttribute("href", link); |
| 901 }); | |
| 902 | |
| 903 // Set forum link | |
| 904 ext.backgroundPage.sendMessage({ | |
| 905 type: "app.get", | |
| 906 what: "platform" | |
| 907 }, | |
| 908 (platform) => | |
| 909 { | |
| 910 ext.backgroundPage.sendMessage({ | |
| 911 type: "app.get", | |
| 912 what: "application" | |
| 913 }, | |
| 914 (application) => | |
| 915 { | |
| 916 if (platform == "chromium" && application != "opera") | |
| 917 application = "chrome"; | |
| 918 | |
| 919 getDocLink(application + "_support", (link) => | |
| 920 { | |
| 921 E("link-forum").setAttribute("href", link); | |
| 922 }); | |
| 923 }); | |
| 924 }); | 919 }); |
| 925 | 920 |
| 926 E("dialog").addEventListener("keydown", function(e) | 921 E("dialog").addEventListener("keydown", function(e) |
| 927 { | 922 { |
| 928 switch (getKey(e)) | 923 switch (getKey(e)) |
| 929 { | 924 { |
| 930 case "Escape": | 925 case "Escape": |
| 931 closeDialog(); | 926 closeDialog(); |
| 932 break; | 927 break; |
| 933 case "Tab": | 928 case "Tab": |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 970 | 965 |
| 971 function closeDialog() | 966 function closeDialog() |
| 972 { | 967 { |
| 973 let dialog = E("dialog"); | 968 let dialog = E("dialog"); |
| 974 dialog.setAttribute("aria-hidden", true); | 969 dialog.setAttribute("aria-hidden", true); |
| 975 dialog.removeAttribute("aria-labelledby"); | 970 dialog.removeAttribute("aria-labelledby"); |
| 976 document.body.removeAttribute("data-dialog"); | 971 document.body.removeAttribute("data-dialog"); |
| 977 focusedBeforeDialog.focus(); | 972 focusedBeforeDialog.focus(); |
| 978 } | 973 } |
| 979 | 974 |
| 975 function showNotification(text) |
| 976 { |
| 977 E("notification").setAttribute("aria-hidden", false); |
| 978 E("notification-text").textContent = text; |
| 979 setTimeout(hideNotification, 3000); |
| 980 } |
| 981 |
| 982 function hideNotification() |
| 983 { |
| 984 E("notification").setAttribute("aria-hidden", true); |
| 985 E("notification-text").textContent = ""; |
| 986 } |
| 987 |
| 980 function setAcceptableAds() | 988 function setAcceptableAds() |
| 981 { | 989 { |
| 982 let option = "none"; | 990 let option = "none"; |
| 983 document.forms["acceptable-ads"].classList.remove("show-dnt-notification"); | 991 document.forms["acceptable-ads"].classList.remove("show-dnt-notification"); |
| 984 if (acceptableAdsUrl in subscriptionsMap) | 992 if (acceptableAdsUrl in subscriptionsMap) |
| 985 { | 993 { |
| 986 option = "ads"; | 994 option = "ads"; |
| 987 } | 995 } |
| 988 else if (acceptableAdsPrivacyUrl in subscriptionsMap) | 996 else if (acceptableAdsPrivacyUrl in subscriptionsMap) |
| 989 { | 997 { |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1324 }); | 1332 }); |
| 1325 ext.backgroundPage.sendMessage({ | 1333 ext.backgroundPage.sendMessage({ |
| 1326 type: "subscriptions.listen", | 1334 type: "subscriptions.listen", |
| 1327 filter: ["added", "disabled", "homepage", "lastDownload", "removed", | 1335 filter: ["added", "disabled", "homepage", "lastDownload", "removed", |
| 1328 "title", "downloadStatus", "downloading"] | 1336 "title", "downloadStatus", "downloading"] |
| 1329 }); | 1337 }); |
| 1330 | 1338 |
| 1331 window.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 1339 window.addEventListener("DOMContentLoaded", onDOMLoaded, false); |
| 1332 window.addEventListener("hashchange", onHashChange, false); | 1340 window.addEventListener("hashchange", onHashChange, false); |
| 1333 } | 1341 } |
| LEFT | RIGHT |