Index: lib/filterClasses.js |
=================================================================== |
--- a/lib/filterClasses.js |
+++ b/lib/filterClasses.js |
@@ -16,19 +16,21 @@ |
*/ |
"use strict"; |
/** |
* @fileOverview Definition of Filter class and its subclasses. |
*/ |
-const {filterNotifier} = require("./filterNotifier"); |
const {extend} = require("./coreUtils"); |
const {filterToRegExp} = require("./common"); |
+const {suffixes} = require("./domain"); |
+const {filterNotifier} = require("./filterNotifier"); |
+ |
const resources = require("../data/resources.json"); |
/** |
* Map of internal resources for URL rewriting. |
* @type {Map.<string,string>} |
*/ |
let resourceMap = new Map( |
Object.keys(resources).map(key => [key, resources[key]]) |
@@ -604,27 +606,23 @@ |
if (!docDomain) |
return domains.get(""); |
if (docDomain[docDomain.length - 1] == ".") |
docDomain = docDomain.replace(/\.+$/, ""); |
docDomain = docDomain.toLowerCase(); |
- while (true) |
+ for (docDomain of suffixes(docDomain)) |
{ |
let isDomainIncluded = domains.get(docDomain); |
if (typeof isDomainIncluded != "undefined") |
return isDomainIncluded; |
+ } |
- let nextDot = docDomain.indexOf("."); |
- if (nextDot < 0) |
- break; |
- docDomain = docDomain.substr(nextDot + 1); |
- } |
return domains.get(""); |
}, |
/** |
* Checks whether this filter is active only on a domain and its subdomains. |
* @param {string} docDomain |
* @return {boolean} |
*/ |