| Left: | ||
| Right: |
| 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-present eyeo GmbH | 3 * Copyright (C) 2006-present 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 10 matching lines...) Expand all Loading... | |
| 21 | 21 |
| 22 const {Filter, InvalidFilter, ElemHideBase, ElemHideEmulationFilter} = | 22 const {Filter, InvalidFilter, ElemHideBase, ElemHideEmulationFilter} = |
| 23 require("filterClasses"); | 23 require("filterClasses"); |
| 24 | 24 |
| 25 /** | 25 /** |
| 26 * An error returned by | 26 * An error returned by |
| 27 * {@link module:filterValidation.parseFilter parseFilter()} or | 27 * {@link module:filterValidation.parseFilter parseFilter()} or |
| 28 * {@link module:filterValidation.parseFilters parseFilters()} | 28 * {@link module:filterValidation.parseFilters parseFilters()} |
| 29 * indicating that a given filter cannot be parsed, | 29 * indicating that a given filter cannot be parsed, |
| 30 * contains an invalid CSS selector or is a filter list header. | 30 * contains an invalid CSS selector or is a filter list header. |
| 31 * | |
|
Manish Jethani
2018/03/15 07:54:11
See http://usejsdoc.org/howto-es2015-classes.html
| |
| 32 * @param {string} type See documentation in the constructor below. | |
| 33 * @param {Object} [details] Contains the "reason" and / or "selector" | |
| 34 * properties. | |
| 35 * @constructor | |
| 36 */ | 31 */ |
| 37 function FilterParsingError(type, details) | 32 class FilterParsingError |
| 38 { | 33 { |
| 39 /** | 34 /** |
| 40 * Indicates why the filter is rejected. Possible choices: | 35 * @param {string} type See documentation in the constructor below. |
| 41 * "invalid-filter", "invalid-css-selector", "unexpected-filter-list-header" | 36 * @param {Object} [details] Contains the "reason" and / or "selector" |
| 42 * | 37 * properties. |
| 43 * @type {string} | |
| 44 */ | 38 */ |
| 45 this.type = type; | 39 constructor(type, details) |
| 40 { | |
| 41 /** | |
| 42 * Indicates why the filter is rejected. Possible choices: | |
| 43 * "invalid-filter", "invalid-css-selector", "unexpected-filter-list-header" | |
| 44 * | |
| 45 * @type {string} | |
| 46 */ | |
| 47 this.type = type; | |
| 46 | 48 |
| 47 if (details) | 49 /** |
| 48 { | 50 * The line number the error occurred on if |
| 49 if ("reason" in details) | 51 * {@link module:filterValidation.parseFilters parseFilters()} |
| 50 this.reason = details.reason; | 52 * were used. Or null if the error was returned by |
| 51 if ("selector" in details) | 53 * {@link module:filterValidation.parseFilter parseFilter()}. |
| 52 this.selector = details.selector; | 54 * |
| 55 * @type {?number} | |
| 56 */ | |
| 57 this.lineno = null; | |
| 58 | |
| 59 if (details) | |
| 60 { | |
| 61 if ("reason" in details) | |
| 62 this.reason = details.reason; | |
| 63 if ("selector" in details) | |
| 64 this.selector = details.selector; | |
| 65 } | |
| 53 } | 66 } |
| 54 } | |
| 55 FilterParsingError.prototype = { | |
| 56 /** | |
| 57 * The line number the error occurred on if | |
| 58 * {@link module:filterValidation.parseFilters parseFilters()} | |
| 59 * were used. Or null if the error was returned by | |
| 60 * {@link module:filterValidation.parseFilter parseFilter()}. | |
| 61 * | |
| 62 * @type {?number} | |
| 63 */ | |
| 64 lineno: null, | |
|
Manish Jethani
2018/03/15 07:54:11
Again, there's no real need for this to live on th
| |
| 65 | 67 |
| 66 /** | 68 /** |
| 67 * Returns a detailed translated error message. | 69 * Returns a detailed translated error message. |
| 68 * | 70 * |
| 69 * @return {string} | 71 * @return {string} |
| 70 */ | 72 */ |
| 71 toString() | 73 toString() |
| 72 { | 74 { |
| 73 let message; | 75 let message; |
| 74 if (this.reason) | 76 if (this.reason) |
| 75 message = browser.i18n.getMessage(this.reason); | 77 message = browser.i18n.getMessage(this.reason); |
| 76 else | 78 else |
| 77 { | 79 { |
| 78 message = browser.i18n.getMessage( | 80 message = browser.i18n.getMessage( |
| 79 this.type.replace(/-/g, "_"), | 81 this.type.replace(/-/g, "_"), |
| 80 "selector" in this ? "'" + this.selector + "'" : null | 82 "selector" in this ? "'" + this.selector + "'" : null |
| 81 ); | 83 ); |
| 82 } | 84 } |
| 83 | 85 |
| 84 if (this.lineno) | 86 if (this.lineno) |
| 85 { | 87 { |
| 86 message = browser.i18n.getMessage( | 88 message = browser.i18n.getMessage( |
| 87 "line", this.lineno.toLocaleString() | 89 "line", this.lineno.toLocaleString() |
| 88 ) + ": " + message; | 90 ) + ": " + message; |
| 89 } | 91 } |
| 90 return message; | 92 return message; |
| 91 } | 93 } |
| 92 }; | 94 } |
| 93 | 95 |
| 94 function isValidCSSSelector(selector) | 96 function isValidCSSSelector(selector) |
| 95 { | 97 { |
| 96 let style = document.createElement("style"); | 98 let style = document.createElement("style"); |
| 97 document.documentElement.appendChild(style); | 99 document.documentElement.appendChild(style); |
| 98 let {sheet} = style; | 100 let {sheet} = style; |
| 99 document.documentElement.removeChild(style); | 101 document.documentElement.removeChild(style); |
| 100 | 102 |
| 101 try | 103 try |
| 102 { | 104 { |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 183 | 185 |
| 184 if (error) | 186 if (error) |
| 185 { | 187 { |
| 186 error.lineno = i + 1; | 188 error.lineno = i + 1; |
| 187 errors.push(error); | 189 errors.push(error); |
| 188 } | 190 } |
| 189 } | 191 } |
| 190 | 192 |
| 191 return {filters, errors}; | 193 return {filters, errors}; |
| 192 }; | 194 }; |
| OLD | NEW |