| 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 |