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-2016 Eyeo GmbH | 3 * Copyright (C) 2006-2016 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 |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
13 * | 13 * |
14 * You should have received a copy of the GNU General Public License | 14 * You should have received a copy of the GNU General Public License |
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
16 */ | 16 */ |
17 | 17 |
| 18 /* globals checkShareResource, getDocLink, openSharePopup, E */ |
| 19 |
18 "use strict"; | 20 "use strict"; |
19 | 21 |
20 (function() | 22 (function() |
21 { | 23 { |
22 function onDOMLoaded() | 24 function onDOMLoaded() |
23 { | 25 { |
24 // Set up logo image | 26 // Set up logo image |
25 var logo = E("logo"); | 27 let logo = E("logo"); |
26 logo.src = "skin/abp-128.png"; | 28 logo.src = "skin/abp-128.png"; |
27 var errorCallback = function() | 29 let errorCallback = function() |
28 { | 30 { |
29 logo.removeEventListener("error", errorCallback, false); | 31 logo.removeEventListener("error", errorCallback, false); |
30 // We are probably in Chrome/Opera/Safari, the image has a different path. | 32 // We are probably in Chrome/Opera/Safari, the image has a different path. |
31 logo.src = "icons/detailed/abp-128.png"; | 33 logo.src = "icons/detailed/abp-128.png"; |
32 }; | 34 }; |
33 logo.addEventListener("error", errorCallback, false); | 35 logo.addEventListener("error", errorCallback, false); |
34 | 36 |
35 // Set up URLs | 37 // Set up URLs |
36 getDocLink("donate", function(link) | 38 getDocLink("donate", (link) => |
37 { | 39 { |
38 E("donate").href = link; | 40 E("donate").href = link; |
39 }); | 41 }); |
40 | 42 |
41 getDocLink("contributors", function(link) | 43 getDocLink("contributors", (link) => |
42 { | 44 { |
43 E("contributors").href = link; | 45 E("contributors").href = link; |
44 }); | 46 }); |
45 | 47 |
46 getDocLink("acceptable_ads_criteria", function(link) | 48 getDocLink("acceptable_ads_criteria", (link) => |
47 { | 49 { |
48 setLinks("acceptable-ads-explanation", link, openFilters); | 50 setLinks("acceptable-ads-explanation", link, openFilters); |
49 }); | 51 }); |
50 | 52 |
51 getDocLink("contribute", function(link) | 53 getDocLink("contribute", (link) => |
52 { | 54 { |
53 setLinks("share-headline", link); | 55 setLinks("share-headline", link); |
54 }); | 56 }); |
55 | 57 |
56 ext.backgroundPage.sendMessage({ | 58 ext.backgroundPage.sendMessage({ |
57 type: "app.get", | 59 type: "app.get", |
58 what: "issues" | 60 what: "issues" |
59 }, function(issues) | 61 }, (issues) => |
60 { | 62 { |
61 // Show warning if filterlists settings were reinitialized | 63 // Show warning if filterlists settings were reinitialized |
62 if (issues.filterlistsReinitialized) | 64 if (issues.filterlistsReinitialized) |
63 { | 65 { |
64 E("filterlistsReinitializedWarning").removeAttribute("hidden"); | 66 E("filterlistsReinitializedWarning").removeAttribute("hidden"); |
65 setLinks("filterlistsReinitializedWarning", openFilters); | 67 setLinks("filterlistsReinitializedWarning", openFilters); |
66 } | 68 } |
67 }); | 69 }); |
68 | 70 |
69 updateSocialLinks(); | 71 updateSocialLinks(); |
70 | 72 |
71 ext.onMessage.addListener(function(message) | 73 ext.onMessage.addListener((message) => |
72 { | 74 { |
73 if (message.type == "subscriptions.respond") | 75 if (message.type == "subscriptions.respond") |
74 { | 76 { |
75 updateSocialLinks(); | 77 updateSocialLinks(); |
76 } | 78 } |
77 }); | 79 }); |
78 ext.backgroundPage.sendMessage({ | 80 ext.backgroundPage.sendMessage({ |
79 type: "subscriptions.listen", | 81 type: "subscriptions.listen", |
80 filter: ["added", "removed", "updated", "disabled"] | 82 filter: ["added", "removed", "updated", "disabled"] |
81 }); | 83 }); |
82 } | 84 } |
83 | 85 |
84 function updateSocialLinks() | 86 function updateSocialLinks() |
85 { | 87 { |
86 var networks = ["twitter", "facebook", "gplus"]; | 88 for (let network of ["twitter", "facebook", "gplus"]) |
87 networks.forEach(function(network) | |
88 { | 89 { |
89 var link = E("share-" + network); | 90 let link = E("share-" + network); |
90 checkShareResource(link.getAttribute("data-script"), function(isBlocked) | 91 checkShareResource(link.getAttribute("data-script"), (isBlocked) => |
91 { | 92 { |
92 // Don't open the share page if the sharing script would be blocked | 93 // Don't open the share page if the sharing script would be blocked |
93 if (isBlocked) | 94 if (isBlocked) |
94 link.removeEventListener("click", onSocialLinkClick, false); | 95 link.removeEventListener("click", onSocialLinkClick, false); |
95 else | 96 else |
96 link.addEventListener("click", onSocialLinkClick, false); | 97 link.addEventListener("click", onSocialLinkClick, false); |
97 }); | 98 }); |
98 }); | 99 } |
99 } | 100 } |
100 | 101 |
101 function onSocialLinkClick(event) | 102 function onSocialLinkClick(event) |
102 { | 103 { |
103 if (window.matchMedia("(max-width: 970px)").matches) | 104 if (window.matchMedia("(max-width: 970px)").matches) |
104 return; | 105 return; |
105 | 106 |
106 event.preventDefault(); | 107 event.preventDefault(); |
107 | 108 |
108 getDocLink(event.target.id, function(link) | 109 getDocLink(event.target.id, (link) => |
109 { | 110 { |
110 openSharePopup(link); | 111 openSharePopup(link); |
111 }); | 112 }); |
112 } | 113 } |
113 | 114 |
114 function setLinks(id) | 115 function setLinks(id, ...args) |
115 { | 116 { |
116 var element = E(id); | 117 let element = E(id); |
117 if (!element) | 118 if (!element) |
118 { | 119 { |
119 return; | 120 return; |
120 } | 121 } |
121 | 122 |
122 var links = element.getElementsByTagName("a"); | 123 let links = element.getElementsByTagName("a"); |
123 | 124 |
124 for (var i = 0; i < links.length; i++) | 125 for (let i = 0; i < links.length; i++) |
125 { | 126 { |
126 if (typeof arguments[i + 1] == "string") | 127 if (typeof args[i] == "string") |
127 { | 128 { |
128 links[i].href = arguments[i + 1]; | 129 links[i].href = args[i]; |
129 links[i].setAttribute("target", "_blank"); | 130 links[i].setAttribute("target", "_blank"); |
130 } | 131 } |
131 else if (typeof arguments[i + 1] == "function") | 132 else if (typeof args[i] == "function") |
132 { | 133 { |
133 links[i].href = "javascript:void(0);"; | 134 links[i].href = "javascript:void(0);"; |
134 links[i].addEventListener("click", arguments[i + 1], false); | 135 links[i].addEventListener("click", args[i], false); |
135 } | 136 } |
136 } | 137 } |
137 } | 138 } |
138 | 139 |
139 function openFilters() | 140 function openFilters() |
140 { | 141 { |
141 ext.backgroundPage.sendMessage({type: "app.open", what: "options"}); | 142 ext.backgroundPage.sendMessage({type: "app.open", what: "options"}); |
142 } | 143 } |
143 | 144 |
144 document.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 145 document.addEventListener("DOMContentLoaded", onDOMLoaded, false); |
145 })(); | 146 }()); |
OLD | NEW |