Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#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):

http://codereview.adblockplus.org/5113230347206656/

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

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.

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

Last edited 5 years ago by arthur (previous) (diff)

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
Note: See TracTickets for help on using tickets.