Opened on 01/12/2018 at 08:05:59 PM
Last modified on 06/22/2018 at 06:34:34 AM
#6255 new change
Use full request frame tree
Reported by: | asmirnov | Assignee: | |
---|---|---|---|
Priority: | P3 | Milestone: | |
Module: | Adblock-Plus-for-Chromium | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Platform: | Android | |
Ready: | no | Confidential: | no |
Tester: | Unknown | Verified working: | no |
Review URL(s): |
Description
Background
We're using only last request referrer as known frame parent:
https://gitlab.com/adblockplus/chromium/blob/abp/chrome/browser/net/chrome_network_delegate.cc#L381
However for proper adblocking we'd better use full frame tree, flattened and passed as documentUrls:
https://gitlab.com/adblockplus/chromium/blob/abp/chrome/browser/net/chrome_network_delegate.cc#L429
What to change
Use full request frame tree
Attachments (0)
Change History (6)
comment:1 Changed on 05/08/2018 at 12:32:35 PM by asmirnov
- Priority changed from P2 to P3
comment:2 Changed on 05/08/2018 at 01:16:58 PM by asmirnov
comment:3 Changed on 05/15/2018 at 12:18:00 PM by asmirnov
RenderFrameHost:FromID works in UI thread too:
https://cs.chromium.org/chromium/src/content/browser/frame_host/render_frame_host_impl.cc?dr=CSs&l=454
comment:4 Changed on 05/17/2018 at 11:09:37 AM by asmirnov
comment:5 Changed on 05/17/2018 at 11:10:28 AM by asmirnov
FrameTreeNode::GloballyFindByID can be called on UI thread too:
https://cs.chromium.org/chromium/src/content/browser/frame_host/frame_tree_node.cc?dr=CSs&g=0&l=82
comment:6 Changed on 06/22/2018 at 06:34:34 AM by asmirnov
Tech discussion thread: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/ykMMHc6ZVp0
It looks like we can't get RenderFrameHost instance ptr instantly, we have to use callback that should be called on UI thread:
https://gitlab.com/eyeo/adblockplus/chromium/blob/dev-65.0.3325.181_2/content/public/browser/resource_request_info.h#L94
Since we try to access it from chrome_network_delegate.cc it seems to be problematic: we will have to wait until we get response in UI thread and return back here (so it will lock this background thread and increase loading time significantly). A user can also do smth in UI thread (like scrolling) so it looks even more problematic.