| 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} | 
| */ |