Index: lib/filterClasses.js
===================================================================
--- a/lib/filterClasses.js
+++ b/lib/filterClasses.js
@@ -18,17 +18,17 @@
 "use strict";
 
 /**
  * @fileOverview Definition of Filter class and its subclasses.
  */
 
 const {extend} = require("./coreUtils");
 const {filterToRegExp} = require("./common");
-const {suffixes} = require("./domain");
+const {normalizeHostname, suffixes} = require("./domain");
 const {filterNotifier} = require("./filterNotifier");
 
 const resources = require("../data/resources.json");
 
 /**
  * Map of internal resources for URL rewriting.
  * @type {Map.<string,string>}
  */
@@ -601,22 +601,17 @@
     if (!domains)
       return true;
 
     // If the document has no host name, match only if the filter
     // isn't restricted to specific domains
     if (!docDomain)
       return domains.get("");
 
-    if (docDomain[docDomain.length - 1] == ".")
-      docDomain = docDomain.replace(/\.+$/, "");
-
-    docDomain = docDomain.toLowerCase();
-
-    for (docDomain of suffixes(docDomain))
+    for (docDomain of suffixes(normalizeHostname(docDomain)))
     {
       let isDomainIncluded = domains.get(docDomain);
       if (typeof isDomainIncluded != "undefined")
         return isDomainIncluded;
     }
 
     return domains.get("");
   },
@@ -628,20 +623,17 @@
    */
   isActiveOnlyOnDomain(docDomain)
   {
     let {domains} = this;
 
     if (!docDomain || !domains || domains.get(""))
       return false;
 
-    if (docDomain[docDomain.length - 1] == ".")
-      docDomain = docDomain.replace(/\.+$/, "");
-
-    docDomain = docDomain.toLowerCase();
+    docDomain = normalizeHostname(docDomain);
 
     for (let [domain, isIncluded] of domains)
     {
       if (isIncluded && domain != docDomain)
       {
         if (domain.length <= docDomain.length)
           return false;
 
