| Index: lib/contentPolicy.js | 
| diff --git a/lib/contentPolicy.js b/lib/contentPolicy.js | 
| index e15332889eaa93128393e14c66c3527653b96aae..267dc886b004a881f896f9a324bc523b9d9515ce 100644 | 
| --- a/lib/contentPolicy.js | 
| +++ b/lib/contentPolicy.js | 
| @@ -153,6 +153,7 @@ let Policy = exports.Policy = | 
| let docDomain = getHostname(wndLocation); | 
| let match = null; | 
| let [sitekey, sitekeyWnd] = getSitekey(wnd); | 
| +    let genericblock = { match: null }; | 
| if (!match && Prefs.enabled) | 
| { | 
| let testWnd = wnd; | 
| @@ -171,6 +172,17 @@ let Policy = exports.Policy = | 
| RequestNotifier.addNodeData(testWnd.document, topWnd, Policy.type.DOCUMENT, getHostname(parentWndLocation), false, testWndLocation, match); | 
| return true; | 
| } | 
| +        else if (!(genericblock.match instanceof WhitelistFilter) && contentType != Policy.type.ELEMHIDE) | 
| +        { | 
| +          let parentDocDomain = getHostname(parentWndLocation); | 
| +          genericblock.match = defaultMatcher.matchesAny(testWndLocation, "GENERICBLOCK", parentDocDomain, false); | 
| +          if (genericblock.match instanceof WhitelistFilter) | 
| +          { | 
| +            genericblock.parentDocDomain = parentDocDomain; | 
| +            genericblock.testWnd = testWnd; | 
| +            genericblock.testWndLocation = testWndLocation; | 
| +          } | 
| +        } | 
|  | 
| if (testWnd.parent == testWnd) | 
| break; | 
| @@ -200,6 +212,10 @@ let Policy = exports.Policy = | 
| parentWndLocation = (testWnd == testWnd.parent ? testWndLocation : getWindowLocation(testWnd.parent)); | 
| let parentDocDomain = getHostname(parentWndLocation); | 
| match = defaultMatcher.matchesAny(testWndLocation, "ELEMHIDE", parentDocDomain, false); | 
| + | 
| +        if (!(match instanceof WhitelistFilter) && (!location.domains || location.domains[""])) | 
| +          match = defaultMatcher.matchesAny(testWndLocation, "GENERICHIDE", parentDocDomain, false); | 
| + | 
| if (match instanceof WhitelistFilter) | 
| { | 
| FilterStorage.increaseHitCount(match, wnd); | 
| @@ -234,6 +250,19 @@ let Policy = exports.Policy = | 
| if (!match && Prefs.enabled) | 
| { | 
| match = defaultMatcher.matchesAny(locationText, Policy.typeDescr[contentType] || "", docDomain, thirdParty, sitekey); | 
| +      if (match instanceof BlockingFilter && (!match.domains || match.domains[""]) && genericblock.match instanceof WhitelistFilter) | 
| +      { | 
| +        FilterStorage.increaseHitCount(genericblock.match, wnd); | 
| +        RequestNotifier.addNodeData( | 
| +          genericblock.testWnd.document, | 
| +          topWnd, contentType, | 
| +          genericblock.parentDocDomain, | 
| +          false, genericblock.testWndLocation, | 
| +          genericblock.match | 
| +        ); | 
| +        return true; | 
| +      } | 
| + | 
| if (match instanceof BlockingFilter && node.ownerDocument && !(contentType in Policy.nonVisual)) | 
| { | 
| let prefCollapse = (match.collapse != null ? match.collapse : !Prefs.fastcollapse); | 
|  |