summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/js/cosmetic-filtering.js26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/js/cosmetic-filtering.js b/src/js/cosmetic-filtering.js
index f0eeed1f..fd51c222 100644
--- a/src/js/cosmetic-filtering.js
+++ b/src/js/cosmetic-filtering.js
@@ -564,26 +564,28 @@ FilterContainer.prototype.reset = function() {
// https://github.com/chrisaljoudi/uBlock/issues/1004
// Detect and report invalid CSS selectors.
-FilterContainer.prototype.div = document.createElement('div');
-
-// Not all browsers support `Element.matches`:
-// http://caniuse.com/#feat=matchesselector
+FilterContainer.prototype.isValidSelector = (function() {
+ var div = document.createElement('div');
+
+ // Not all browsers support `Element.matches`:
+ // http://caniuse.com/#feat=matchesselector
+ if ( typeof div.matches !== 'function' ) {
+ return function() {
+ return true;
+ };
+ }
-if ( typeof FilterContainer.prototype.div.matches === 'function' ) {
- FilterContainer.prototype.isValidSelector = function(s) {
+ return function(s) {
try {
- this.div.matches(s);
+ // https://github.com/gorhill/uBlock/issues/693
+ div.matches(s + ',\n#foo');
} catch (e) {
console.error('uBlock> invalid cosmetic filter:', s);
return false;
}
return true;
};
-} else {
- FilterContainer.prototype.isValidSelector = function() {
- return true;
- };
-}
+})();
/******************************************************************************/