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-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 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 "use strict"; | 18 "use strict"; |
19 | 19 |
20 (function() | 20 (function() |
21 { | 21 { |
22 function E(id) | |
23 { | |
24 return document.getElementById(id); | |
25 } | |
26 | |
27 // Load subscriptions for features | 22 // Load subscriptions for features |
28 var featureSubscriptions = [ | 23 var featureSubscriptions = [ |
29 { | 24 { |
30 feature: "malware", | 25 feature: "malware", |
31 homepage: "http://malwaredomains.com/", | 26 homepage: "http://malwaredomains.com/", |
32 title: "Malware Domains", | 27 title: "Malware Domains", |
33 url: "https://easylist-downloads.adblockplus.org/malwaredomains_full.txt" | 28 url: "https://easylist-downloads.adblockplus.org/malwaredomains_full.txt" |
34 }, | 29 }, |
35 { | 30 { |
36 feature: "social", | 31 feature: "social", |
37 homepage: "https://www.fanboy.co.nz/", | 32 homepage: "https://www.fanboy.co.nz/", |
38 title: "Fanboy's Social Blocking List", | 33 title: "Fanboy's Social Blocking List", |
39 url: "https://easylist-downloads.adblockplus.org/fanboy-social.txt" | 34 url: "https://easylist-downloads.adblockplus.org/fanboy-social.txt" |
40 }, | 35 }, |
41 { | 36 { |
42 feature: "tracking", | 37 feature: "tracking", |
43 homepage: "https://easylist.adblockplus.org/", | 38 homepage: "https://easylist.adblockplus.org/", |
44 title: "EasyPrivacy", | 39 title: "EasyPrivacy", |
45 url: "https://easylist-downloads.adblockplus.org/easyprivacy.txt" | 40 url: "https://easylist-downloads.adblockplus.org/easyprivacy.txt" |
46 } | 41 } |
47 ]; | 42 ]; |
48 | 43 |
49 function getDocLink(link, callback) | |
50 { | |
51 ext.backgroundPage.sendMessage({ | |
52 type: "app.get", | |
53 what: "doclink", | |
54 link: link | |
55 }, callback); | |
56 } | |
57 | |
58 function onDOMLoaded() | 44 function onDOMLoaded() |
59 { | 45 { |
60 // Set up logo image | 46 // Set up logo image |
61 var logo = E("logo"); | 47 var logo = E("logo"); |
62 logo.src = "skin/abp-128.png"; | 48 logo.src = "skin/abp-128.png"; |
63 var errorCallback = function() | 49 var errorCallback = function() |
64 { | 50 { |
65 logo.removeEventListener("error", errorCallback, false); | 51 logo.removeEventListener("error", errorCallback, false); |
66 // We are probably in Chrome/Opera/Safari, the image has a different path. | 52 // We are probably in Chrome/Opera/Safari, the image has a different path. |
67 logo.src = "icons/detailed/abp-128.png"; | 53 logo.src = "icons/detailed/abp-128.png"; |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 { | 129 { |
144 ext.backgroundPage.sendMessage({ | 130 ext.backgroundPage.sendMessage({ |
145 type: "subscriptions.toggle", | 131 type: "subscriptions.toggle", |
146 url: featureSubscription.url, | 132 url: featureSubscription.url, |
147 title: featureSubscription.title, | 133 title: featureSubscription.title, |
148 homepage: featureSubscription.homepage | 134 homepage: featureSubscription.homepage |
149 }); | 135 }); |
150 }, false); | 136 }, false); |
151 } | 137 } |
152 | 138 |
153 function openSharePopup(url) | |
154 { | |
155 var iframe = E("share-popup"); | |
156 var glassPane = E("glass-pane"); | |
157 var popupMessageReceived = false; | |
158 | |
159 var popupMessageListener = function(event) | |
160 { | |
161 if (!/[.\/]adblockplus\.org$/.test(event.origin)) | |
162 return; | |
163 | |
164 var width = event.data.width; | |
165 var height = event.data.height; | |
166 iframe.width = width; | |
167 iframe.height = height; | |
168 iframe.style.marginTop = -height/2 + "px"; | |
169 iframe.style.marginLeft = -width/2 + "px"; | |
170 popupMessageReceived = true; | |
171 window.removeEventListener("message", popupMessageListener); | |
172 }; | |
173 // Firefox requires last parameter to be true to be triggered by unprivilege
d pages | |
174 window.addEventListener("message", popupMessageListener, false, true); | |
175 | |
176 var popupLoadListener = function() | |
177 { | |
178 if (popupMessageReceived) | |
179 { | |
180 iframe.className = "visible"; | |
181 | |
182 var popupCloseListener = function() | |
183 { | |
184 iframe.className = glassPane.className = ""; | |
185 document.removeEventListener("click", popupCloseListener); | |
186 }; | |
187 document.addEventListener("click", popupCloseListener, false); | |
188 } | |
189 else | |
190 { | |
191 glassPane.className = ""; | |
192 window.removeEventListener("message", popupMessageListener); | |
193 } | |
194 | |
195 iframe.removeEventListener("load", popupLoadListener); | |
196 }; | |
197 iframe.addEventListener("load", popupLoadListener, false); | |
198 | |
199 iframe.src = url; | |
200 glassPane.className = "visible"; | |
201 } | |
202 | |
203 function updateSocialLinks() | 139 function updateSocialLinks() |
204 { | 140 { |
205 var networks = ["twitter", "facebook", "gplus"]; | 141 var networks = ["twitter", "facebook", "gplus"]; |
206 networks.forEach(function(network) | 142 networks.forEach(function(network) |
207 { | 143 { |
208 var link = E("share-" + network); | 144 var link = E("share-" + network); |
209 var message = { | 145 checkShareResource(link.getAttribute("data-script"), function(isBlocked) |
210 type: "filters.blocked", | |
211 url: link.getAttribute("data-script"), | |
212 requestType: "SCRIPT", | |
213 docDomain: "adblockplus.org", | |
214 thirdParty: true | |
215 }; | |
216 ext.backgroundPage.sendMessage(message, function(blocked) | |
217 { | 146 { |
218 // Don't open the share page if the sharing script would be blocked | 147 // Don't open the share page if the sharing script would be blocked |
219 if (blocked) | 148 if (isBlocked) |
220 link.removeEventListener("click", onSocialLinkClick, false); | 149 link.removeEventListener("click", onSocialLinkClick, false); |
221 else | 150 else |
222 link.addEventListener("click", onSocialLinkClick, false); | 151 link.addEventListener("click", onSocialLinkClick, false); |
223 }); | 152 }); |
224 }); | 153 }); |
225 } | 154 } |
226 | 155 |
227 function onSocialLinkClick(event) | 156 function onSocialLinkClick(event) |
228 { | 157 { |
229 event.preventDefault(); | 158 event.preventDefault(); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 { | 216 { |
288 var button = E("toggle-" + feature); | 217 var button = E("toggle-" + feature); |
289 if (isEnabled) | 218 if (isEnabled) |
290 button.classList.remove("off"); | 219 button.classList.remove("off"); |
291 else | 220 else |
292 button.classList.add("off"); | 221 button.classList.add("off"); |
293 } | 222 } |
294 | 223 |
295 document.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 224 document.addEventListener("DOMContentLoaded", onDOMLoaded, false); |
296 })(); | 225 })(); |
OLD | NEW |