Left: | ||
Right: |
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() | |
21 { | 22 { |
22 function onDOMLoaded() | 23 function onDOMLoaded() |
Wladimir Palant
2017/03/09 15:05:08
As with other files, this won't work without IIFE.
kzar
2017/03/10 07:28:59
Done.
| |
23 { | 24 { |
24 // Set up logo image | 25 // Set up logo image |
25 var logo = E("logo"); | 26 let logo = E("logo"); |
26 logo.src = "skin/abp-128.png"; | 27 logo.src = "skin/abp-128.png"; |
27 var errorCallback = function() | 28 let errorCallback = function() |
28 { | 29 { |
29 logo.removeEventListener("error", errorCallback, false); | 30 logo.removeEventListener("error", errorCallback, false); |
30 // We are probably in Chrome/Opera/Safari, the image has a different path. | 31 // We are probably in Chrome/Opera/Safari, the image has a different path. |
31 logo.src = "icons/detailed/abp-128.png"; | 32 logo.src = "icons/detailed/abp-128.png"; |
32 }; | 33 }; |
33 logo.addEventListener("error", errorCallback, false); | 34 logo.addEventListener("error", errorCallback, false); |
34 | 35 |
35 // Set up URLs | 36 // Set up URLs |
36 getDocLink("donate", function(link) | 37 getDocLink("donate", (link) => |
37 { | 38 { |
38 E("donate").href = link; | 39 E("donate").href = link; |
39 }); | 40 }); |
40 | 41 |
41 getDocLink("contributors", function(link) | 42 getDocLink("contributors", (link) => |
42 { | 43 { |
43 E("contributors").href = link; | 44 E("contributors").href = link; |
44 }); | 45 }); |
45 | 46 |
46 getDocLink("acceptable_ads_criteria", function(link) | 47 getDocLink("acceptable_ads_criteria", (link) => |
47 { | 48 { |
48 setLinks("acceptable-ads-explanation", link, openFilters); | 49 setLinks("acceptable-ads-explanation", link, openFilters); |
49 }); | 50 }); |
50 | 51 |
51 getDocLink("contribute", function(link) | 52 getDocLink("contribute", (link) => |
52 { | 53 { |
53 setLinks("share-headline", link); | 54 setLinks("share-headline", link); |
54 }); | 55 }); |
55 | 56 |
56 ext.backgroundPage.sendMessage({ | 57 ext.backgroundPage.sendMessage({ |
57 type: "app.get", | 58 type: "app.get", |
58 what: "issues" | 59 what: "issues" |
59 }, function(issues) | 60 }, (issues) => |
60 { | 61 { |
61 // Show warning if filterlists settings were reinitialized | 62 // Show warning if filterlists settings were reinitialized |
62 if (issues.filterlistsReinitialized) | 63 if (issues.filterlistsReinitialized) |
63 { | 64 { |
64 E("filterlistsReinitializedWarning").removeAttribute("hidden"); | 65 E("filterlistsReinitializedWarning").removeAttribute("hidden"); |
65 setLinks("filterlistsReinitializedWarning", openFilters); | 66 setLinks("filterlistsReinitializedWarning", openFilters); |
66 } | 67 } |
67 }); | 68 }); |
68 | 69 |
69 updateSocialLinks(); | 70 updateSocialLinks(); |
70 | 71 |
71 ext.onMessage.addListener(function(message) | 72 ext.onMessage.addListener((message) => |
72 { | 73 { |
73 if (message.type == "subscriptions.respond") | 74 if (message.type == "subscriptions.respond") |
74 { | 75 { |
75 updateSocialLinks(); | 76 updateSocialLinks(); |
76 } | 77 } |
77 }); | 78 }); |
78 ext.backgroundPage.sendMessage({ | 79 ext.backgroundPage.sendMessage({ |
79 type: "subscriptions.listen", | 80 type: "subscriptions.listen", |
80 filter: ["added", "removed", "updated", "disabled"] | 81 filter: ["added", "removed", "updated", "disabled"] |
81 }); | 82 }); |
82 } | 83 } |
83 | 84 |
84 function updateSocialLinks() | 85 function updateSocialLinks() |
85 { | 86 { |
86 var networks = ["twitter", "facebook", "gplus"]; | 87 for (let network of ["twitter", "facebook", "gplus"]) |
87 networks.forEach(function(network) | |
88 { | 88 { |
89 var link = E("share-" + network); | 89 let link = E("share-" + network); |
90 checkShareResource(link.getAttribute("data-script"), function(isBlocked) | 90 checkShareResource(link.getAttribute("data-script"), (isBlocked) => |
91 { | 91 { |
92 // Don't open the share page if the sharing script would be blocked | 92 // Don't open the share page if the sharing script would be blocked |
93 if (isBlocked) | 93 if (isBlocked) |
94 link.removeEventListener("click", onSocialLinkClick, false); | 94 link.removeEventListener("click", onSocialLinkClick, false); |
95 else | 95 else |
96 link.addEventListener("click", onSocialLinkClick, false); | 96 link.addEventListener("click", onSocialLinkClick, false); |
97 }); | 97 }); |
98 }); | 98 } |
99 } | 99 } |
100 | 100 |
101 function onSocialLinkClick(event) | 101 function onSocialLinkClick(event) |
102 { | 102 { |
103 if (window.matchMedia("(max-width: 970px)").matches) | 103 if (window.matchMedia("(max-width: 970px)").matches) |
104 return; | 104 return; |
105 | 105 |
106 event.preventDefault(); | 106 event.preventDefault(); |
107 | 107 |
108 getDocLink(event.target.id, function(link) | 108 getDocLink(event.target.id, (link) => |
109 { | 109 { |
110 openSharePopup(link); | 110 openSharePopup(link); |
111 }); | 111 }); |
112 } | 112 } |
113 | 113 |
114 function setLinks(id) | 114 function setLinks(id, ...args) |
115 { | 115 { |
116 var element = E(id); | 116 let element = E(id); |
117 if (!element) | 117 if (!element) |
118 { | 118 { |
119 return; | 119 return; |
120 } | 120 } |
121 | 121 |
122 var links = element.getElementsByTagName("a"); | 122 let links = element.getElementsByTagName("a"); |
123 | 123 |
124 for (var i = 0; i < links.length; i++) | 124 for (let i = 0; i < links.length; i++) |
125 { | 125 { |
126 if (typeof arguments[i + 1] == "string") | 126 if (typeof args[i] == "string") |
127 { | 127 { |
128 links[i].href = arguments[i + 1]; | 128 links[i].href = args[i]; |
129 links[i].setAttribute("target", "_blank"); | 129 links[i].setAttribute("target", "_blank"); |
130 } | 130 } |
131 else if (typeof arguments[i + 1] == "function") | 131 else if (typeof args[i] == "function") |
132 { | 132 { |
133 links[i].href = "javascript:void(0);"; | 133 links[i].href = "javascript:void(0);"; |
134 links[i].addEventListener("click", arguments[i + 1], false); | 134 links[i].addEventListener("click", args[i], false); |
135 } | 135 } |
136 } | 136 } |
137 } | 137 } |
138 | 138 |
139 function openFilters() | 139 function openFilters() |
140 { | 140 { |
141 ext.backgroundPage.sendMessage({type: "app.open", what: "options"}); | 141 ext.backgroundPage.sendMessage({type: "app.open", what: "options"}); |
142 } | 142 } |
143 | 143 |
144 document.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 144 document.addEventListener("DOMContentLoaded", onDOMLoaded, false); |
145 })(); | 145 } |
OLD | NEW |