| LEFT | RIGHT | 
|---|
| 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 | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
| 24       var params = window.location.search.substr(1).split("&"); | 24       var params = window.location.search.substr(1).split("&"); | 
| 25       for (var i = 0; i < params.length; i++) | 25       for (var i = 0; i < params.length; i++) | 
| 26       { | 26       { | 
| 27         var parts = params[i].split("=", 2); | 27         var parts = params[i].split("=", 2); | 
| 28         if (parts.length == 2 && parts[0] in data) | 28         if (parts.length == 2 && parts[0] in data) | 
| 29           data[parts[0]] = decodeURIComponent(parts[1]); | 29           data[parts[0]] = decodeURIComponent(parts[1]); | 
| 30       } | 30       } | 
| 31     } | 31     } | 
| 32   } | 32   } | 
| 33 | 33 | 
|  | 34   var params = { | 
|  | 35     blockedURLs: "", | 
|  | 36     seenDataCorruption: false, | 
|  | 37     filterlistsReinitialized: false, | 
|  | 38     addSubscription: false, | 
|  | 39     filterError: false | 
|  | 40   }; | 
|  | 41   updateFromURL(params); | 
|  | 42 | 
| 34   var modules = {}; | 43   var modules = {}; | 
| 35   global.require = function(module) | 44   global.require = function(module) | 
| 36   { | 45   { | 
| 37     return modules[module]; | 46     return modules[module]; | 
| 38   }; | 47   }; | 
| 39 | 48 | 
| 40   modules.utils = { | 49   modules.utils = { | 
| 41     Utils: { | 50     Utils: { | 
| 42       getDocLink: function(link) | 51       getDocLink: function(link) | 
| 43       { | 52       { | 
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 148       this.disabled = false; | 157       this.disabled = false; | 
| 149     } | 158     } | 
| 150   }; | 159   }; | 
| 151   modules.filterClasses.Filter.fromText = function(text) | 160   modules.filterClasses.Filter.fromText = function(text) | 
| 152   { | 161   { | 
| 153     return new modules.filterClasses.Filter(text); | 162     return new modules.filterClasses.Filter(text); | 
| 154   }; | 163   }; | 
| 155 | 164 | 
| 156   modules.filterValidation = | 165   modules.filterValidation = | 
| 157   { | 166   { | 
| 158     FilterParsingError: function(type) |  | 
| 159     { |  | 
| 160       this.type = type; |  | 
| 161     }, |  | 
| 162     parseFilter: function(text) | 167     parseFilter: function(text) | 
| 163     { | 168     { | 
| 164       if (text) | 169 | 
| 165       { | 170       if (params.filterError) | 
| 166         if (text[0] == "[") | 171         return {error: "Invalid filter"}; | 
| 167           return {error: new modules.filterValidation.FilterParsingError("unexpe
     cted-filter-list-header")}; |  | 
| 168       } |  | 
| 169       return {filter: modules.filterClasses.Filter.fromText(text)}; | 172       return {filter: modules.filterClasses.Filter.fromText(text)}; | 
| 170     }, | 173     }, | 
| 171     parseFilters: function(text) | 174     parseFilters: function(text) | 
| 172     { | 175     { | 
| 173       var lines = text.split("\n"); | 176       if (params.filterError) | 
| 174       var filters = []; | 177         return {errors: ["Invalid filter"]}; | 
| 175       var errors = []; | 178       return {filters: | 
| 176 | 179               text.split("\n").map(modules.filterClasses.Filter.fromText)}; | 
| 177       for (var i = 0; i < lines.length; i++) | 180     } | 
| 178       { |  | 
| 179         var parseResult = modules.filterValidation.parseFilter(lines[i]); |  | 
| 180         if (parseResult.error) |  | 
| 181           errors.push(parseResult.error); |  | 
| 182         else |  | 
| 183           filters.push(parseResult.filter); |  | 
| 184       } |  | 
| 185 |  | 
| 186       return {filters: filters, errors: errors}; |  | 
| 187     } |  | 
| 188   }; |  | 
| 189   modules.filterValidation.FilterParsingError.prototype.toString = function() |  | 
| 190   { |  | 
| 191     return this.type; |  | 
| 192   }; | 181   }; | 
| 193 | 182 | 
| 194   modules.synchronizer = { | 183   modules.synchronizer = { | 
| 195     Synchronizer: {} | 184     Synchronizer: {} | 
| 196   }; | 185   }; | 
| 197 | 186 | 
| 198   modules.matcher = { | 187   modules.matcher = { | 
| 199     defaultMatcher: { | 188     defaultMatcher: { | 
| 200       matchesAny: function(url, requestType, docDomain, thirdParty) | 189       matchesAny: function(url, requestType, docDomain, thirdParty) | 
| 201       { | 190       { | 
| 202         var params = {blockedURLs: ""}; |  | 
| 203         updateFromURL(params); |  | 
| 204         var blocked = params.blockedURLs.split(","); | 191         var blocked = params.blockedURLs.split(","); | 
| 205         if (blocked.indexOf(url) >= 0) | 192         if (blocked.indexOf(url) >= 0) | 
| 206           return new modules.filterClasses.BlockingFilter(); | 193           return new modules.filterClasses.BlockingFilter(); | 
| 207         else | 194         else | 
| 208           return null; | 195           return null; | 
| 209       } | 196       } | 
| 210     } | 197     } | 
| 211   }; | 198   }; | 
| 212 | 199 | 
| 213   var notifierListeners = []; | 200   var notifierListeners = []; | 
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 283     "https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt", | 270     "https://easylist-downloads.adblockplus.org/easylistgermany+easylist.txt", | 
| 284     "https://easylist-downloads.adblockplus.org/exceptionrules.txt", | 271     "https://easylist-downloads.adblockplus.org/exceptionrules.txt", | 
| 285     "https://easylist-downloads.adblockplus.org/fanboy-social.txt", | 272     "https://easylist-downloads.adblockplus.org/fanboy-social.txt", | 
| 286     "~user~786254" | 273     "~user~786254" | 
| 287   ]; | 274   ]; | 
| 288   var knownSubscriptions = Object.create(null); | 275   var knownSubscriptions = Object.create(null); | 
| 289   for (var subscriptionUrl of subscriptions) | 276   for (var subscriptionUrl of subscriptions) | 
| 290     knownSubscriptions[subscriptionUrl] = modules.subscriptionClasses.Subscripti
     on.fromURL(subscriptionUrl); | 277     knownSubscriptions[subscriptionUrl] = modules.subscriptionClasses.Subscripti
     on.fromURL(subscriptionUrl); | 
| 291   var customSubscription = knownSubscriptions["~user~786254"]; | 278   var customSubscription = knownSubscriptions["~user~786254"]; | 
| 292 | 279 | 
| 293   var issues = {seenDataCorruption: false, filterlistsReinitialized: false}; | 280   global.seenDataCorruption = params.seenDataCorruption; | 
| 294   updateFromURL(issues); | 281   global.filterlistsReinitialized = params.filterlistsReinitialized; | 
| 295   global.seenDataCorruption = issues.seenDataCorruption; |  | 
| 296   global.filterlistsReinitialized = issues.filterlistsReinitialized; |  | 
| 297 | 282 | 
| 298   var events = {addSubscription: false}; | 283   if (params.addSubscription) | 
| 299   updateFromURL(events); |  | 
| 300   if (events.addSubscription) |  | 
| 301   { | 284   { | 
| 302     // We don't know how long it will take for the page to fully load | 285     // We don't know how long it will take for the page to fully load | 
| 303     // so we'll post the message after one second | 286     // so we'll post the message after one second | 
| 304     setTimeout(function() | 287     setTimeout(function() | 
| 305     { | 288     { | 
| 306       window.postMessage({ | 289       window.postMessage({ | 
| 307         type: "message", | 290         type: "message", | 
| 308         payload: { | 291         payload: { | 
| 309           title: "Custom subscription", | 292           title: "Custom subscription", | 
| 310           url: "http://example.com/custom.txt", | 293           url: "http://example.com/custom.txt", | 
| 311           type: "add-subscription" | 294           type: "add-subscription" | 
| 312         } | 295         } | 
| 313       }, "*"); | 296       }, "*"); | 
| 314     }, 1000); | 297     }, 1000); | 
| 315   } | 298   } | 
| 316 })(this); | 299 })(this); | 
| LEFT | RIGHT | 
|---|