#1356 closed change (fixed)
Improve detecting of the issuer of the request
Reported by: | sergz | Assignee: | oleksandr |
---|---|---|---|
Priority: | P2 | Milestone: | Adblock-Plus-for-Internet-Explorer-1.3 |
Module: | Adblock-Plus-for-Internet-Explorer | Keywords: | |
Cc: | oleksandr, arthur | Blocked By: | |
Blocking: | #1210 | Platform: | Internet Explorer |
Ready: | yes | Confidential: | no |
Tester: | Verified working: | no | |
Review URL(s): |
Description
For the requests issued from iframe the tab (in WBPassthruSink::OnStart) is nullptr and the boundDomain is retrieved as pOIBindInfo->GetBindString(BINDSTRING_XDR_ORIGIN, .... In that case for the iframe with src=http://www.google.com/cse?q=iphone&.... boundDomain is "http://www.google.com", apparently there is no chain from the root page url to http://www.google.com in referrerMapping and the request is blocked. We need to figure it out.
The live example when it causes a trouble with additional information
Let's consider the search result on netzwelt.de, the trouble here is that http://www.google.com/ads/search/module/ads/3.0/6a7698aedee47a8ae2b86e998724639fd687815d/n/search.js is blocked in IE and is not blocked in other browsers.
The filters are
EasyList
/ads/3.0/*
White list, exceptionrules.txt
! Text-based search ads on netzwelt.de @@||google.com/uds/$script,subdocument,document,domain=netzwelt.de @@||google.com/cse?$subdocument,document,domain=netzwelt.de @@||google.com/aclk^$subdocument,domain=netzwelt.de
One might also note the plenty of exception rules like @@||google.com/ads/search/module/ads/*/search.js but not for netzwelt.de domain. It's not needed here because here it's issued from the whitelisted resource, but it's needed when that script search.js is loaded directly from the original web site.
The iframe has src like http://www.google.com/cse?q=iphone&r=m&cx=013553128330504480320%3Ar...F-8%26q%3Diphone%26sa%3DFinden and that iframe tries to load http://www.google.com/ads/search/module/ads/3.0/6a7698aedee47a8ae2b86e998724639fd687815d/n/search.js .That url is blocked by EasyList according to the mentioned above filter. On another hand it is issued from the white listed resource (the exception entry is @@||google.com/cse?$subdocument,document,domain=netzwelt.de) and should not be blocked (we firstly check whether it matches some exception rule or not). If we can correctly obtain the full URL of iframe for that script, then netzweld.de will be found in referrerMapping and that script will not be blocked.
One not so good solution for IE9+
Replace BINDSTRING_XDR_ORIGIN by BINDSTRING_ROOTDOC_URL, in that case the boundDomain is the full URL of the root page. But still it's different from the behavior in other browsers because it does not take into account the referrerMapping.
Change History (6)
comment:1 Changed 5 years ago by arthur
comment:2 Changed 5 years ago by sergz
- Blocking 1210 added
comment:3 Changed 5 years ago by oleksandr
- Priority changed from P1 to P2
comment:4 Changed 5 years ago by oleksandr
- Ready set
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:5 Changed 5 years ago by oleksandr
- Resolution set to fixed
- Status changed from reviewing to closed
comment:6 Changed 5 years ago by fhd
- Milestone set to Adblock-Plus-for-Internet-Explorer-1.3
In the case of netzwelt.de this script needs to be whitelisted (requested on netzwelt.de):
http://www.google.com/uds/api/ads/3.0/71f848a2f00d381df07d24552c097ae2/search.I.js
And it is allowed by this exception rule: @@||google.com/uds/$script,subdocument,document,domain=netzwelt.de
Edit: forget about it. It's not relevant actually what I wrote. :D