| 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 "use strict"; |   18 "use strict"; | 
|   19  |   19  | 
|   20 (function() |   20 (function() | 
|   21 { |   21 { | 
|   22   // Load subscriptions for features |  | 
|   23   var featureSubscriptions = [ |  | 
|   24     { |  | 
|   25       feature: "malware", |  | 
|   26       homepage: "http://malwaredomains.com/", |  | 
|   27       title: "Malware Domains", |  | 
|   28       url: "https://easylist-downloads.adblockplus.org/malwaredomains_full.txt" |  | 
|   29     }, |  | 
|   30     { |  | 
|   31       feature: "social", |  | 
|   32       homepage: "https://www.fanboy.co.nz/", |  | 
|   33       title: "Fanboy's Social Blocking List", |  | 
|   34       url: "https://easylist-downloads.adblockplus.org/fanboy-social.txt" |  | 
|   35     }, |  | 
|   36     { |  | 
|   37       feature: "tracking", |  | 
|   38       homepage: "https://easylist.adblockplus.org/", |  | 
|   39       title: "EasyPrivacy", |  | 
|   40       url: "https://easylist-downloads.adblockplus.org/easyprivacy.txt" |  | 
|   41     } |  | 
|   42   ]; |  | 
|   43  |  | 
|   44   function onDOMLoaded() |   22   function onDOMLoaded() | 
|   45   { |   23   { | 
|   46     // Set up logo image |   24     // Set up logo image | 
|   47     var logo = E("logo"); |   25     var logo = E("logo"); | 
|   48     logo.src = "skin/abp-128.png"; |   26     logo.src = "skin/abp-128.png"; | 
|   49     var errorCallback = function() |   27     var errorCallback = function() | 
|   50     { |   28     { | 
|   51       logo.removeEventListener("error", errorCallback, false); |   29       logo.removeEventListener("error", errorCallback, false); | 
|   52       // We are probably in Chrome/Opera/Safari, the image has a different path. |   30       // We are probably in Chrome/Opera/Safari, the image has a different path. | 
|   53       logo.src = "icons/detailed/abp-128.png"; |   31       logo.src = "icons/detailed/abp-128.png"; | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
|   84       if (issues.filterlistsReinitialized) |   62       if (issues.filterlistsReinitialized) | 
|   85       { |   63       { | 
|   86         E("filterlistsReinitializedWarning").removeAttribute("hidden"); |   64         E("filterlistsReinitializedWarning").removeAttribute("hidden"); | 
|   87         setLinks("filterlistsReinitializedWarning", openFilters); |   65         setLinks("filterlistsReinitializedWarning", openFilters); | 
|   88       } |   66       } | 
|   89  |   67  | 
|   90       if (issues.legacySafariVersion) |   68       if (issues.legacySafariVersion) | 
|   91         E("legacySafariWarning").removeAttribute("hidden"); |   69         E("legacySafariWarning").removeAttribute("hidden"); | 
|   92     }); |   70     }); | 
|   93  |   71  | 
|   94     // Set up feature buttons linked to subscriptions |  | 
|   95     featureSubscriptions.forEach(initToggleSubscriptionButton); |  | 
|   96     updateToggleButtons(); |  | 
|   97     updateSocialLinks(); |   72     updateSocialLinks(); | 
|   98  |   73  | 
|   99     ext.onMessage.addListener(function(message) |   74     ext.onMessage.addListener(function(message) | 
|  100     { |   75     { | 
|  101       if (message.type == "subscriptions.respond") |   76       if (message.type == "subscriptions.respond") | 
|  102       { |   77       { | 
|  103         updateToggleButtons(); |  | 
|  104         updateSocialLinks(); |   78         updateSocialLinks(); | 
|  105       } |   79       } | 
|  106     }); |   80     }); | 
|  107     ext.backgroundPage.sendMessage({ |   81     ext.backgroundPage.sendMessage({ | 
|  108       type: "subscriptions.listen", |   82       type: "subscriptions.listen", | 
|  109       filter: ["added", "removed", "updated", "disabled"] |   83       filter: ["added", "removed", "updated", "disabled"] | 
|  110     }); |   84     }); | 
|  111   } |   85   } | 
|  112  |   86  | 
|  113   function initToggleSubscriptionButton(featureSubscription) |  | 
|  114   { |  | 
|  115     var feature = featureSubscription.feature; |  | 
|  116  |  | 
|  117     var element = E("toggle-" + feature); |  | 
|  118     element.addEventListener("click", function(event) |  | 
|  119     { |  | 
|  120       ext.backgroundPage.sendMessage({ |  | 
|  121         type: "subscriptions.toggle", |  | 
|  122         url: featureSubscription.url, |  | 
|  123         title: featureSubscription.title, |  | 
|  124         homepage: featureSubscription.homepage |  | 
|  125       }); |  | 
|  126     }, false); |  | 
|  127   } |  | 
|  128  |  | 
|  129   function updateSocialLinks() |   87   function updateSocialLinks() | 
|  130   { |   88   { | 
|  131     var networks = ["twitter", "facebook", "gplus"]; |   89     var networks = ["twitter", "facebook", "gplus"]; | 
|  132     networks.forEach(function(network) |   90     networks.forEach(function(network) | 
|  133     { |   91     { | 
|  134       var link = E("share-" + network); |   92       var link = E("share-" + network); | 
|  135       checkShareResource(link.getAttribute("data-script"), function(isBlocked) |   93       checkShareResource(link.getAttribute("data-script"), function(isBlocked) | 
|  136       { |   94       { | 
|  137         // Don't open the share page if the sharing script would be blocked |   95         // Don't open the share page if the sharing script would be blocked | 
|  138         if (isBlocked) |   96         if (isBlocked) | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  179         links[i].addEventListener("click", arguments[i + 1], false); |  137         links[i].addEventListener("click", arguments[i + 1], false); | 
|  180       } |  138       } | 
|  181     } |  139     } | 
|  182   } |  140   } | 
|  183  |  141  | 
|  184   function openFilters() |  142   function openFilters() | 
|  185   { |  143   { | 
|  186     ext.backgroundPage.sendMessage({type: "app.open", what: "options"}); |  144     ext.backgroundPage.sendMessage({type: "app.open", what: "options"}); | 
|  187   } |  145   } | 
|  188  |  146  | 
|  189   function updateToggleButtons() |  | 
|  190   { |  | 
|  191     ext.backgroundPage.sendMessage({ |  | 
|  192       type: "subscriptions.get", |  | 
|  193       downloadable: true, |  | 
|  194       ignoreDisabled: true |  | 
|  195     }, function(subscriptions) |  | 
|  196     { |  | 
|  197       var known = Object.create(null); |  | 
|  198       for (var i = 0; i < subscriptions.length; i++) |  | 
|  199         known[subscriptions[i].url] = true; |  | 
|  200       for (var i = 0; i < featureSubscriptions.length; i++) |  | 
|  201       { |  | 
|  202         var featureSubscription = featureSubscriptions[i]; |  | 
|  203         updateToggleButton(featureSubscription.feature, featureSubscription.url 
     in known); |  | 
|  204       } |  | 
|  205     }); |  | 
|  206   } |  | 
|  207  |  | 
|  208   function updateToggleButton(feature, isEnabled) |  | 
|  209   { |  | 
|  210     var button = E("toggle-" + feature); |  | 
|  211     if (isEnabled) |  | 
|  212       button.classList.remove("off"); |  | 
|  213     else |  | 
|  214       button.classList.add("off"); |  | 
|  215   } |  | 
|  216  |  | 
|  217   document.addEventListener("DOMContentLoaded", onDOMLoaded, false); |  147   document.addEventListener("DOMContentLoaded", onDOMLoaded, false); | 
|  218 })(); |  148 })(); | 
| OLD | NEW |