Opened on 09/11/2014 at 09:30:43 AM
Closed on 11/05/2014 at 04:45:06 PM
Last modified on 12/12/2014 at 09:32:21 AM
#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.
Attachments (0)
Change History (6)
comment:1 Changed on 09/11/2014 at 06:03:46 PM by arthur
comment:2 Changed on 09/19/2014 at 01:43:37 PM by sergz
- Blocking 1210 added
comment:3 Changed on 10/07/2014 at 01:58:37 PM by oleksandr
- Priority changed from P1 to P2
comment:4 Changed on 10/07/2014 at 09:56:40 PM by oleksandr
- Ready set
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:5 Changed on 11/05/2014 at 04:45:06 PM by oleksandr
- Resolution set to fixed
- Status changed from reviewing to closed
comment:6 Changed on 12/12/2014 at 09:32:21 AM 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