Opened on 02/15/2019 at 02:18:01 PM
Closed on 02/22/2019 at 09:37:43 PM
Last modified on 04/24/2020 at 07:54:15 AM
#7291 closed defect (fixed)
Exception in element hiding emulation
Reported by: | hfiguiere | Assignee: | hfiguiere |
---|---|---|---|
Priority: | P2 | Milestone: | |
Module: | Core | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Platform: | Unknown / Cross platform | |
Ready: | no | Confidential: | no |
Tester: | Ross | Verified working: | yes |
Review URL(s): |
Description (last modified by hfiguiere)
Environment
Chrome or Firefox
How to reproduce
- Disable all filters.
- Add the following filter wp.pl#?#div:-abp-properties(box-sizing: content-box;):-abp-has(a > div)
- Visit https://finanse.wp.pl/tasmy-kaczynskiego-mec-jacek-dubois-kaczynski-musi-zostac-przesluchany-6349714442750081v
Observed behaviour
In the web console there is an exception:
elemHideEmulation.js:189 Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Document': '._3bcRuc4 div*' is not a valid selector. at scopedQuerySelector (chrome-extension://ldcecbkkoecffmfljeihcmifjjdoepkn/include.preload.js:789:24) at scopedQuerySelectorAll (chrome-extension://ldcecbkkoecffmfljeihcmifjjdoepkn/include.preload.js:795:10) at HasSelector.getElements (chrome-extension://ldcecbkkoecffmfljeihcmifjjdoepkn/include.preload.js:913:20) at getElements.next (<anonymous>) at HasSelector.getSelectors (chrome-extension://ldcecbkkoecffmfljeihcmifjjdoepkn/include.preload.js:898:14) at getSelectors.next (<anonymous>) at evaluate (chrome-extension://ldcecbkkoecffmfljeihcmifjjdoepkn/include.preload.js:828:30) at evaluate.next (<anonymous>) at evaluate (chrome-extension://ldcecbkkoecffmfljeihcmifjjdoepkn/include.preload.js:834:14) at evaluate.next (<anonymous>)
Expected behaviour
No exception
Hint to testers
You can test this on one or our testpages.
- Add the filter adblockplus.org#?#div:-abp-properties(float: left;)
- Visit https://testpages.adblockplus.org/en/filters/element-hiding-emulation
- If the bug is here, there is an exception in the console:
include.preload.js:1407 Uncaught DOMException: Failed to execute 'querySelectorAll' on 'Document': '#site-header-logo > div*' is not a valid selector. at processPatterns (chrome-extension://fagebjibnhbcaljjbhoialonelckpden/include.preload.js:1407:45) at processPatterns (chrome-extension://fagebjibnhbcaljjbhoialonelckpden/include.preload.js:1420:14) at ElemHideEmulation._addSelectors (chrome-extension://fagebjibnhbcaljjbhoialonelckpden/include.preload.js:1423:5) at HTMLDocument.handler (chrome-extension://fagebjibnhbcaljjbhoialonelckpden/include.preload.js:1509:14)
- If fixes, the logo should disappear at the top.
Attachments (0)
Change History (9)
comment:2 Changed on 02/20/2019 at 08:23:13 PM by hfiguiere
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:3 Changed on 02/21/2019 at 03:21:26 PM by mjethani
- Description modified (diff)
- Priority changed from Unknown to P2
comment:4 Changed on 02/21/2019 at 03:23:49 PM by mjethani
comment:5 Changed on 02/21/2019 at 05:50:39 PM by abpbot
A commit referencing this issue has landed:
Issue 7291 - Don't mangle selectors with a '*'
comment:6 Changed on 02/22/2019 at 05:55:11 PM by abpbot
A commit referencing this issue has landed:
Issue 7291 - Handle *.foo in qualifySelector()
comment:7 Changed on 02/22/2019 at 09:37:43 PM by hfiguiere
- Description modified (diff)
- Resolution set to fixed
- Status changed from reviewing to closed
Added a fixed testcase in the "Hints for tester" section.
Ideally we would craft a test case. It requires to have in the stylesheet a rules that ends with a '*'.
comment:8 Changed on 07/25/2019 at 02:18:52 PM by Ross
- Tester changed from Unknown to Ross
- Verified working set
Fixed. Working as described.
ABP 0.9.15.2340
Microsoft Edge 44.17763.1.0 / Windows 10 1809
ABP 3.5.2.2340
Chrome 49.0.2623.75 / Windows 10 1809
Chrome 75.0.3770.142 / Windows 10 1809
Opera 36.0.2130.65 / Windows 10 1809
Opera 62.0.3331.72 / Windows 10 1809
Firefox 51.0 / Windows 10 1809
Firefox 68.0 / Windows 10 1809
Firefox Mobile 68.0 / Android 7.2.2
comment:9 Changed on 04/24/2020 at 07:54:15 AM by mjethani
- Sensitive unset
This ticket is OK except there needs to be a standalone test case so the bug/fix can be verified even if the original document has changed.
@hfiguiere can you make this reproducible without referring to external content not under our control?
In the Expected behavior section, we need to also clarify which elements should be hidden.