| Index: lib/content/elemHideEmulation.js |
| =================================================================== |
| --- a/lib/content/elemHideEmulation.js |
| +++ b/lib/content/elemHideEmulation.js |
| @@ -322,20 +322,33 @@ |
| }, |
| *getElements(prefix, subtree, styles) |
| { |
| let actualPrefix = (!prefix || incompletePrefixRegexp.test(prefix)) ? |
| prefix + "*" : prefix; |
| let elements = scopedQuerySelectorAll(subtree, actualPrefix); |
| + |
| if (elements) |
| { |
| + let lastRoot = null; |
| for (let element of elements) |
| { |
| + // For a filter like div:-abp-contains(Hello) and a subtree like |
| + // <div id="a"><div id="b"><div id="c">Hello</div></div></div> |
| + // we're only interested in div#a |
| + if (lastRoot && lastRoot.contains(element)) |
| + { |
| + yield null; |
| + continue; |
| + } |
| + |
| + lastRoot = element; |
| + |
| if (this._regexp && this._regexp.test(element.textContent)) |
| yield element; |
| else |
| yield null; |
| } |
| } |
| } |
| }; |