Opened on 08/25/2017 at 06:50:12 AM
Last modified on 10/08/2019 at 05:56:07 PM
#5571 new defect
[abp2blocklist] Safari Technology Preview throws an error if *-domain is mixed with *-top-url
Reported by: | mjethani | Assignee: | |
---|---|---|---|
Priority: | P2 | Milestone: | |
Module: | Adblock-Plus-for-iOS/macOS | Keywords: | abp2blocklist, Acceptable Ads |
Cc: | sebastian, kzar, mario, BrentM | Blocked By: | |
Blocking: | Platform: | Safari | |
Ready: | yes | Confidential: | no |
Tester: | Unknown | Verified working: | no |
Review URL(s): |
Description
Environment
Safari Technology Preview Release 38 (Safari 11.1, WebKit 12605.1.3.1)
Adblock Plus for Safari based on the current safari bookmark (5e895ee5aee1)
macOS 10.12.5
EasyList+AA
How to reproduce
- Go into the options page
- Select EasyList+AA in your subscriptions
- Enable Safari's native content blocking
Observed behaviour
Error: "Rule list compilation failed: A list cannot have if-domain and unless-domain mixed with if-top-url and unless-top-url"
Expected behaviour
No error.
Notes
The Safari developers seem to have confirmed that this is intentional and not a bug in Safari. It is not allowed to mix the *-domain properties with the *-top-url properties in the same list, as we are doing.
This only affects desktop Safari for now, but it is very likely going to affect iOS as well because this restriction is most likely being imposed for performance reasons.
Attachments (0)
Change History (25)
comment:1 Changed on 08/25/2017 at 07:11:51 AM by mjethani
comment:2 Changed on 08/25/2017 at 07:18:30 AM by mjethani
- Cc mario added
comment:3 follow-up: ↓ 14 Changed on 08/29/2017 at 12:04:33 PM by kzar
My choice would be option 3, but if we decide the effort of having two lists isn't worth it I'd go with option 2. I don't think accepting more false positives is an option, those cause us a lot of trouble.
comment:4 Changed on 08/29/2017 at 12:05:00 PM by kzar
- Platform changed from Unknown / Cross platform to Safari
- Priority changed from Unknown to P3
- Ready set
comment:5 Changed on 09/13/2017 at 04:38:37 PM by sebastian
- Priority changed from P3 to P4
comment:6 Changed on 09/14/2017 at 03:20:11 AM by mjethani
- Cc BrentM added
comment:7 Changed on 09/14/2017 at 04:14:46 AM by sebastian
- Priority changed from P4 to P3
comment:8 follow-ups: ↓ 9 ↓ 11 Changed on 09/27/2017 at 05:27:15 PM by sebastian
Safari 11 came out a week ago. Did this limitation make it into the release version? If so we might want to prioritize this issue.
comment:9 in reply to: ↑ 8 Changed on 10/10/2017 at 05:35:14 PM by cakefoo
Replying to sebastian:
Safari 11 came out a week ago. Did this limitation make it into the release version? If so we might want to prioritize this issue.
In Safari 11 the observed behavior is Error: "Rule list compilation failed: Too many rules in JSON array."
comment:10 Changed on 10/10/2017 at 06:21:34 PM by sebastian
This is an unrelated issue. Ever since there were only up to 50k rules allowed for Content Blockers. Are you using Adblock Plus for Safari on macOS? Then you should see a warning telling you to reduce the number of filter lists.
comment:11 in reply to: ↑ 8 Changed on 10/17/2017 at 08:29:40 PM by mjethani
Replying to sebastian:
Safari 11 came out a week ago. Did this limitation make it into the release version? If so we might want to prioritize this issue.
Confirmed.
When if-domain and if-top-url are used together, you get an error: "Rule list compilation failed: A trigger cannot have more than one condition (if-domain, unless-domain, if-top-url, or unless-top-url)"
comment:12 Changed on 10/17/2017 at 08:33:01 PM by sebastian
- Priority changed from P3 to P2
comment:13 Changed on 01/18/2018 at 04:33:28 PM by iOSAlookBrowser
I meet the same problem. Can anyone fix this problem please?
Best Regards.
comment:14 in reply to: ↑ 3 Changed on 01/19/2018 at 06:34:12 AM by mjethani
Replying to kzar:
My choice would be option 3, but if we decide the effort of having two lists isn't worth it I'd go with option 2. I don't think accepting more false positives is an option, those cause us a lot of trouble.
Unfortunately even with option 2 we'll still get some false positives. In the unit tests there are three cases: /foo, ||test.com, and http://example.com/foo. We can only use unless-domain for the second and third cases. There is no way around this.
On the other hand it seems that Safari 11 adoption has really picked up.
comment:15 Changed on 01/24/2018 at 03:29:54 AM by iOSAlookBrowser
iOS 11 (with Safari 11) have been increase to 65%.
comment:16 Changed on 06/11/2018 at 11:39:53 AM by mjethani
- Milestone set to Adblock-Plus-for-Safari-next
comment:17 Changed on 07/10/2018 at 03:57:59 PM by sebastian
- Component changed from Platform to Adblock-Plus-for-iOS
abp2blocklist has been moved from the Platform module to Adblock Plus for iOS/macOS.
comment:18 Changed on 07/13/2018 at 06:11:28 PM by sebastian
- Milestone Adblock-Plus-for-Safari-next deleted
comment:19 Changed on 09/18/2018 at 01:13:35 AM by gr
With the release of Safari 12, it's no longer possible to uncheck "Use Safari's native Content Blocking (experimental)", and I'm seeing this same behavior with:
macOS 10.12.6 (16G1510)
Safari 12.0 (12606.2.11)
Adblock Plus 1.12.5
Enabled filter lists:
*none*
I also see it with only the "ABP Testcase Subscription" filter list (from https://testpages.adblockplus.org/) selected. With more complicated lists, for example only EasyList, selected, I see the symptoms described at https://issues.adblockplus.org/ticket/6961.
comment:20 Changed on 09/18/2018 at 12:42:22 PM by mjethani
- Owner mjethani deleted
This issue is no longer assigned to me as this work now belongs to a different team.
comment:21 Changed on 09/18/2018 at 01:59:44 PM by sebastian
The old mechanism Adblock Plus uses by default (instead of Content Blocking) on Safari 11 and below, is no longer supported by Safari 12. Hence Content Blocking is used no matter what, and there is no option to disable Content Blocking.
comment:22 Changed on 09/18/2018 at 05:43:27 PM by mjethani
At least somebody on Twitter has run into this on Safari 12. I've left some suggestions above on how to address it.
comment:23 Changed on 12/28/2018 at 03:28:54 PM by johnson83
spam
comment:24 Changed on 09/05/2019 at 06:55:45 AM by Elegantitservices
spam
comment:25 Changed on 09/18/2019 at 09:41:07 AM by Lcx666iixx
spam
Now we have the following options:
The last one would allow us to improve rule generation on Safari 11+