Hi Brent,
On 6/22/15 10:11 AM, Brent Montrose wrote:
I have another question regarding Content Blocking, and performance.
For the "Action" types of "css-display-none" are the following two
examples effectively the same (hiding content on example.com)?
Example 1:
"trigger": {
"url-filter": "^https?://([^/]*\.)?example\.com"
},
"action": {
"type": "css-display-none",
"selector": ".ad"
}
Example 2:
"trigger": {
"url-filter": "^https?://",
"if-domain": "example.com"
},
"action": {
"type": "css-display-none",
"selector": ".ad"
}
Example 1 explicitly specifies the domain in the "url-filter".
Example 2 uses a very generic "url-filter", but utilizes the
"if-domain" restrict which domains the selector would be applied to.
Are these two rules effectively the same? (I think they are based on
my understanding). Also, is there a performance difference between
the two? If so, which one would perform better, and why?
The rules will not have the same output.
The filters "if-domain" and "unless-domain" are applied to the main
document's URL. The "url-filter" regular expression is always applied to
the current resource being tested.
The first rule will inject the selector ".ad" on any document loaded
from example.com and any of its subdomains.
If you are on trusted-source.com and it has a script loading from
example.com, it will be blocked.
The second rule will inject the selector ".ad" on any resource loaded
when you are on example.com, regardless of their origin.
If you are on trusted-source.com and it has a script loading from
example.com, it will go through.
Performance wise, both are extremely fast. You can have several
thousands rules of either type without suffering any performance impact.
Benjamin
_______________________________________________
webkit-help mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-help