| 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-2017 eyeo GmbH | 3  * Copyright (C) 2006-2017 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 /** @module filterValidation */ | 18 /** @module filterValidation */ | 
| 19 | 19 | 
| 20 "use strict"; | 20 "use strict"; | 
| 21 | 21 | 
| 22 const {Filter, InvalidFilter, ElemHideBase, ElemHideEmulationFilter} = require("
     filterClasses"); | 22 const {Filter, InvalidFilter, ElemHideBase, ElemHideEmulationFilter} = | 
|  | 23       require("filterClasses"); | 
| 23 const {Utils} = require("utils"); | 24 const {Utils} = require("utils"); | 
| 24 | 25 | 
| 25 /** | 26 /** | 
| 26  * An error returned by | 27  * An error returned by | 
| 27  * {@link module:filterValidation.parseFilter parseFilter()} or | 28  * {@link module:filterValidation.parseFilter parseFilter()} or | 
| 28  * {@link module:filterValidation.parseFilters parseFilters()} | 29  * {@link module:filterValidation.parseFilters parseFilters()} | 
| 29  * indicating that a given filter cannot be parsed, | 30  * indicating that a given filter cannot be parsed, | 
| 30  * contains an invalid CSS selector or is a filter list header. | 31  * contains an invalid CSS selector or is a filter list header. | 
| 31  * | 32  * | 
| 32  * @param {string} type See documentation in the constructor below. | 33  * @param {string} type See documentation in the constructor below. | 
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 136       return {error: new FilterParsingError("unexpected-filter-list-header")}; | 137       return {error: new FilterParsingError("unexpected-filter-list-header")}; | 
| 137 | 138 | 
| 138     filter = Filter.fromText(text); | 139     filter = Filter.fromText(text); | 
| 139 | 140 | 
| 140     if (filter instanceof InvalidFilter) | 141     if (filter instanceof InvalidFilter) | 
| 141     { | 142     { | 
| 142       return {error: new FilterParsingError("invalid-filter", | 143       return {error: new FilterParsingError("invalid-filter", | 
| 143                                             {reason: filter.reason})}; | 144                                             {reason: filter.reason})}; | 
| 144     } | 145     } | 
| 145     if (filter instanceof ElemHideBase && | 146     if (filter instanceof ElemHideBase && | 
| 146         !filter instanceof ElemHideEmulationFilter && | 147         !(filter instanceof ElemHideEmulationFilter) && | 
| 147         !isValidCSSSelector(filter.selector)) | 148         !isValidCSSSelector(filter.selector)) | 
| 148     { | 149     { | 
| 149       return {error: new FilterParsingError("invalid-css-selector", | 150       return {error: new FilterParsingError("invalid-css-selector", | 
| 150                                             {selector: filter.selector})}; | 151                                             {selector: filter.selector})}; | 
| 151     } | 152     } | 
| 152   } | 153   } | 
| 153 | 154 | 
| 154   return {filter}; | 155   return {filter}; | 
| 155 }; | 156 }; | 
| 156 | 157 | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 183 | 184 | 
| 184     if (error) | 185     if (error) | 
| 185     { | 186     { | 
| 186       error.lineno = i + 1; | 187       error.lineno = i + 1; | 
| 187       errors.push(error); | 188       errors.push(error); | 
| 188     } | 189     } | 
| 189   } | 190   } | 
| 190 | 191 | 
| 191   return {filters, errors}; | 192   return {filters, errors}; | 
| 192 }; | 193 }; | 
| LEFT | RIGHT | 
|---|