| Left: | ||
| Right: |
| 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 22 matching lines...) Expand all Loading... | |
| 33 } | 33 } |
| 34 catch (e) | 34 catch (e) |
| 35 { | 35 { |
| 36 return false; | 36 return false; |
| 37 } | 37 } |
| 38 return true; | 38 return true; |
| 39 } | 39 } |
| 40 | 40 |
| 41 /** | 41 /** |
| 42 * @typedef ParsedFilter | 42 * @typedef ParsedFilter |
| 43 * @property {?Filter} [filter] The parsed filter is it is valid. Or null if | 43 * @property {?Filter} [filter] The parsed filter if it is valid. Or null if |
|
kzar
2015/06/08 11:28:04
Nit: Typo "The parsed filter_if_ it is valid"
Sebastian Noack
2015/06/08 12:00:08
Done.
| |
| 44 * the given string is empty or a filter list head er. | 44 * the given string is empty or a filter list head er. |
| 45 * @property {string} [error] An error message indicated that the filter cann ot | 45 * @property {string} [error] An error message indicated that the filter cann ot |
| 46 * be parsed or contains an invalid CSS selector. | 46 * be parsed or contains an invalid CSS selector. |
| 47 */ | 47 */ |
| 48 | 48 |
| 49 let parseFilter = | 49 let parseFilter = |
| 50 /** | 50 /** |
| 51 * Parses and validates a filter given by the user. | 51 * Parses and validates a filter given by the user. |
| 52 * | 52 * |
| 53 * @param {string} text | 53 * @param {string} text |
| 54 * @param {Boolean} [ignoreHeaders=false] If true, no error is produced | 54 * @param {Boolean} [ignoreHeaders=false] If true, {filter: null} is |
| 55 * for filter list headers, instead | 55 returned instead an error |
| 56 * {filter: null} is returned. | 56 for filter list headers. |
| 57 * @return {ParsedFilter} | 57 * @return {ParsedFilter} |
| 58 */ | 58 */ |
| 59 exports.parseFilter = function(text, ignoreHeaders) | 59 exports.parseFilter = function(text, ignoreHeaders) |
| 60 { | 60 { |
| 61 let filter = null; | 61 let filter = null; |
| 62 text = Filter.normalize(text); | 62 text = Filter.normalize(text); |
| 63 | 63 |
| 64 if (text) | 64 if (text) |
| 65 { | 65 { |
| 66 if (text[0] != "[") | 66 if (text[0] != "[") |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 88 * @property {string} [error] An error message indicated that any filter ca nnot | 88 * @property {string} [error] An error message indicated that any filter ca nnot |
| 89 * be parsed or contains an invalid CSS selector . | 89 * be parsed or contains an invalid CSS selector . |
| 90 */ | 90 */ |
| 91 | 91 |
| 92 /** | 92 /** |
| 93 * Parses and validates a newline-separated list of filters given by the user. | 93 * Parses and validates a newline-separated list of filters given by the user. |
| 94 * | 94 * |
| 95 * @param {string} text | 95 * @param {string} text |
| 96 * @param {Boolean} [ignoreHeaders=false] If true, filter list headers | 96 * @param {Boolean} [ignoreHeaders=false] If true, filter list headers |
| 97 * will be stripped instead of | 97 * will be stripped instead of |
| 98 * producing an error. | 98 * returning an error. |
|
kzar
2015/06/08 11:28:04
Nit: "returning"?
Sebastian Noack
2015/06/08 12:00:08
I did not say to "return" an error, because strict
| |
| 99 * @return {ParsedFilters} | 99 * @return {ParsedFilters} |
| 100 */ | 100 */ |
| 101 exports.parseFilters = function(text, ignoreHeaders) | 101 exports.parseFilters = function(text, ignoreHeaders) |
| 102 { | 102 { |
| 103 let lines = text.split("\n"); | 103 let lines = text.split("\n"); |
| 104 let filters = []; | 104 let filters = []; |
| 105 | 105 |
| 106 for (let i = 0; i < lines.length; i++) | 106 for (let i = 0; i < lines.length; i++) |
| 107 { | 107 { |
| 108 let {filter, error} = parseFilter(lines[i], ignoreHeaders); | 108 let {filter, error} = parseFilter(lines[i], ignoreHeaders); |
| 109 | 109 |
| 110 if (error) | 110 if (error) |
| 111 return {error: ext.i18n.getMessage("line", (i + 1).toString()) + ": " + er ror}; | 111 return {error: ext.i18n.getMessage("line", (i + 1).toString()) + ": " + er ror}; |
| 112 | 112 |
| 113 if (filter) | 113 if (filter) |
|
kzar
2015/06/08 11:28:04
Nit: Should be `else if (filter)` IMO
Sebastian Noack
2015/06/08 12:00:08
No, it shouldn't. The else would be redundant, as
| |
| 114 filters.push(filter); | 114 filters.push(filter); |
| 115 } | 115 } |
| 116 | 116 |
| 117 return {filters: filters}; | 117 return {filters: filters}; |
| 118 }; | 118 }; |
| LEFT | RIGHT |