| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * This file is part of Adblock Plus <http://adblockplus.org/>, |    2  * This file is part of Adblock Plus <http://adblockplus.org/>, | 
|    3  * Copyright (C) 2006-2014 Eyeo GmbH |    3  * Copyright (C) 2006-2014 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 | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|   22 { |   22 { | 
|   23   this.Filter = Filter; |   23   this.Filter = Filter; | 
|   24   this.WhitelistFilter = WhitelistFilter; |   24   this.WhitelistFilter = WhitelistFilter; | 
|   25 } |   25 } | 
|   26 with(require("subscriptionClasses")) |   26 with(require("subscriptionClasses")) | 
|   27 { |   27 { | 
|   28   this.Subscription = Subscription; |   28   this.Subscription = Subscription; | 
|   29   this.SpecialSubscription = SpecialSubscription; |   29   this.SpecialSubscription = SpecialSubscription; | 
|   30   this.DownloadableSubscription = DownloadableSubscription; |   30   this.DownloadableSubscription = DownloadableSubscription; | 
|   31 } |   31 } | 
 |   32 with(require("filterValidation")) | 
 |   33 { | 
 |   34   this.parseFilter = parseFilter; | 
 |   35   this.parseFilters = parseFilters; | 
 |   36 } | 
|   32 var FilterStorage = require("filterStorage").FilterStorage; |   37 var FilterStorage = require("filterStorage").FilterStorage; | 
|   33 var FilterNotifier = require("filterNotifier").FilterNotifier; |   38 var FilterNotifier = require("filterNotifier").FilterNotifier; | 
|   34 var Prefs = require("prefs").Prefs; |   39 var Prefs = require("prefs").Prefs; | 
|   35 var Synchronizer = require("synchronizer").Synchronizer; |   40 var Synchronizer = require("synchronizer").Synchronizer; | 
|   36 var Utils = require("utils").Utils; |   41 var Utils = require("utils").Utils; | 
|   37  |   42  | 
|   38 // Loads options from localStorage and sets UI elements accordingly |   43 // Loads options from localStorage and sets UI elements accordingly | 
|   39 function loadOptions() |   44 function loadOptions() | 
|   40 { |   45 { | 
|   41   // Set page title to i18n version of "Adblock Plus Options" |   46   // Set page title to i18n version of "Adblock Plus Options" | 
| (...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  465  |  470  | 
|  466   var filterText = "@@||" + domain + "^$document"; |  471   var filterText = "@@||" + domain + "^$document"; | 
|  467   FilterStorage.addFilter(Filter.fromText(filterText)); |  472   FilterStorage.addFilter(Filter.fromText(filterText)); | 
|  468 } |  473 } | 
|  469  |  474  | 
|  470 // Adds filter text that user typed to the selection box |  475 // Adds filter text that user typed to the selection box | 
|  471 function addTypedFilter(event) |  476 function addTypedFilter(event) | 
|  472 { |  477 { | 
|  473   event.preventDefault(); |  478   event.preventDefault(); | 
|  474  |  479  | 
|  475   var filterText = Filter.normalize(document.getElementById("newFilter").value); |  480   var element = document.getElementById("newFilter"); | 
|  476   document.getElementById("newFilter").value = ""; |  481   var filter; | 
|  477   if (!filterText) |  482  | 
 |  483   try | 
 |  484   { | 
 |  485     filter = parseFilter(element.value); | 
 |  486   } | 
 |  487   catch (error) | 
 |  488   { | 
 |  489     alert(error); | 
|  478     return; |  490     return; | 
 |  491   } | 
|  479  |  492  | 
|  480   FilterStorage.addFilter(Filter.fromText(filterText)); |  493   if (filter) | 
 |  494     FilterStorage.addFilter(filter); | 
 |  495  | 
 |  496   element.value = ""; | 
|  481 } |  497 } | 
|  482  |  498  | 
|  483 // Removes currently selected whitelisted domains |  499 // Removes currently selected whitelisted domains | 
|  484 function removeSelectedExcludedDomain() |  500 function removeSelectedExcludedDomain() | 
|  485 { |  501 { | 
|  486   var excludedDomainsBox = document.getElementById("excludedDomainsBox"); |  502   var excludedDomainsBox = document.getElementById("excludedDomainsBox"); | 
|  487   var remove = []; |  503   var remove = []; | 
|  488   for (var i = 0; i < excludedDomainsBox.length; i++) |  504   for (var i = 0; i < excludedDomainsBox.length; i++) | 
|  489     if (excludedDomainsBox.options[i].selected) |  505     if (excludedDomainsBox.options[i].selected) | 
|  490       remove.push(excludedDomainsBox.options[i].value); |  506       remove.push(excludedDomainsBox.options[i].value); | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  522     var text = ""; |  538     var text = ""; | 
|  523     for (var i = 0; i < userFiltersBox.length; i++) |  539     for (var i = 0; i < userFiltersBox.length; i++) | 
|  524       text += userFiltersBox.options[i].value + "\n"; |  540       text += userFiltersBox.options[i].value + "\n"; | 
|  525     document.getElementById("rawFiltersText").value = text; |  541     document.getElementById("rawFiltersText").value = text; | 
|  526   } |  542   } | 
|  527 } |  543 } | 
|  528  |  544  | 
|  529 // Imports filters in the raw text box |  545 // Imports filters in the raw text box | 
|  530 function importRawFiltersText() |  546 function importRawFiltersText() | 
|  531 { |  547 { | 
|  532   $("#rawFilters").hide(); |  548   var text = document.getElementById("rawFiltersText").value; | 
|  533   var filters = document.getElementById("rawFiltersText").value.split("\n"); |  549  | 
 |  550   var add; | 
 |  551   try | 
 |  552   { | 
 |  553     add = parseFilters(text, true); | 
 |  554   } | 
 |  555   catch (error) | 
 |  556   { | 
 |  557     alert(error); | 
 |  558     return; | 
 |  559   } | 
 |  560  | 
|  534   var seenFilter = {__proto__: null}; |  561   var seenFilter = {__proto__: null}; | 
|  535   for (var i = 0; i < filters.length; i++) |  562   for (var i = 0; i < add.length; i++) | 
|  536   { |  563   { | 
|  537     var text = Filter.normalize(filters[i]); |  564     var filter = add[i]; | 
|  538     if (!text) |  565     FilterStorage.addFilter(filter); | 
|  539       continue; |  566     seenFilter[filter.text] = null; | 
|  540  |  | 
|  541     // Don't import filter list header |  | 
|  542     if (/^\[/.test(text)) |  | 
|  543       continue; |  | 
|  544  |  | 
|  545     FilterStorage.addFilter(Filter.fromText(text)); |  | 
|  546     seenFilter[text] = true; |  | 
|  547   } |  567   } | 
|  548  |  568  | 
|  549   var remove = []; |  569   var remove = []; | 
|  550   for (var i = 0; i < FilterStorage.subscriptions.length; i++) |  570   for (var i = 0; i < FilterStorage.subscriptions.length; i++) | 
|  551   { |  571   { | 
|  552     var subscription = FilterStorage.subscriptions[i]; |  572     var subscription = FilterStorage.subscriptions[i]; | 
|  553     if (!(subscription instanceof SpecialSubscription)) |  573     if (!(subscription instanceof SpecialSubscription)) | 
|  554       continue; |  574       continue; | 
|  555  |  575  | 
|  556     for (var j = 0; j < subscription.filters.length; j++) |  576     for (var j = 0; j < subscription.filters.length; j++) | 
|  557     { |  577     { | 
|  558       var filter = subscription.filters[j]; |  578       var filter = subscription.filters[j]; | 
|  559       if (filter instanceof WhitelistFilter && /^@@\|\|([^\/:]+)\^\$document$/.t
     est(filter.text)) |  579       if (filter instanceof WhitelistFilter && /^@@\|\|([^\/:]+)\^\$document$/.t
     est(filter.text)) | 
|  560         continue; |  580         continue; | 
|  561  |  581  | 
|  562       if (!(filter.text in seenFilter)) |  582       if (!(filter.text in seenFilter)) | 
|  563         remove.push(filter); |  583         remove.push(filter); | 
|  564     } |  584     } | 
|  565   } |  585   } | 
 |  586  | 
|  566   for (var i = 0; i < remove.length; i++) |  587   for (var i = 0; i < remove.length; i++) | 
|  567     FilterStorage.removeFilter(remove[i]); |  588     FilterStorage.removeFilter(remove[i]); | 
 |  589  | 
 |  590   $("#rawFilters").hide(); | 
|  568 } |  591 } | 
|  569  |  592  | 
|  570 // Called when user explicitly requests filter list updates |  593 // Called when user explicitly requests filter list updates | 
|  571 function updateFilterLists() |  594 function updateFilterLists() | 
|  572 { |  595 { | 
|  573   for (var i = 0; i < FilterStorage.subscriptions.length; i++) |  596   for (var i = 0; i < FilterStorage.subscriptions.length; i++) | 
|  574   { |  597   { | 
|  575     var subscription = FilterStorage.subscriptions[i]; |  598     var subscription = FilterStorage.subscriptions[i]; | 
|  576     if (subscription instanceof DownloadableSubscription) |  599     if (subscription instanceof DownloadableSubscription) | 
|  577       Synchronizer.execute(subscription, true, true); |  600       Synchronizer.execute(subscription, true, true); | 
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  625       links[i].href = arguments[i + 1]; |  648       links[i].href = arguments[i + 1]; | 
|  626       links[i].setAttribute("target", "_blank"); |  649       links[i].setAttribute("target", "_blank"); | 
|  627     } |  650     } | 
|  628     else if (typeof arguments[i + 1] == "function") |  651     else if (typeof arguments[i + 1] == "function") | 
|  629     { |  652     { | 
|  630       links[i].href = "javascript:void(0);"; |  653       links[i].href = "javascript:void(0);"; | 
|  631       links[i].addEventListener("click", arguments[i + 1], false); |  654       links[i].addEventListener("click", arguments[i + 1], false); | 
|  632     } |  655     } | 
|  633   } |  656   } | 
|  634 } |  657 } | 
| OLD | NEW |