Opened 5 years ago

Closed 5 years ago

#1792 closed defect (duplicate)

Block element can not select elements inside srcdoc iframe

Reported by: kzar Assignee:
Priority: P3 Milestone:
Module: Platform Keywords:
Cc: sebastian Blocked By:
Blocking: Platform: Chrome
Ready: yes Confidential: no
Tester: Verified working: no
Review URL(s):

Description (last modified by kzar)

Environment

Adblock Plus 1.8.9 on Chrome 39.0.2171.95 on Linux.

How to reproduce

  1. Browse to a page that has an image element inside an iframe, the iframe contents specified inline using the srcdoc attribute instead of src.
  2. Right click the image and Click "Block element".

Observed behaviour

You can only select the whole iframe element, not the image within.

Expected behaviour

You should be able to select the image within, just as you could if the child frame's contents was defined in a separate HTML file.

Attachments (1)

iframe-test.html (217 bytes) - added by kzar 5 years ago.

Download all attachments as: .zip

Change History (4)

Changed 5 years ago by kzar

comment:1 Changed 5 years ago by kzar

  • Description modified (diff)

comment:2 Changed 5 years ago by sebastian

  • Cc sebastian added
  • Priority changed from Unknown to P3
  • Ready set

When we can generate any filter for a frame, we create an overlay, preventing pointer events from being passed further down the frame hierarchy. This behavior is the same, regardless whether the frame uses srcdoc or is loaded from a file. Feel free to fix this. But note that only removing that overlay isn't sufficient, and that the user should still be able to block the frame itself.

Once that issue has been resolved (or if you remove the style attribute, that no filter can be generated anymore for this frame, and therefore no overlay will be injected), you still won't be able to block the image inside the frame. That is because our content scripts don't run in frames using srcdoc. There is a manifest option which lets you run content scripts in those frames as well. However, it's still pretty buggy (see #1704). So we can't use it for now. But we have a workaround that we currently only use in include.preload.js. So you need to adopt that workaround also in include.postload.js.

comment:3 Changed 5 years ago by sebastian

  • Resolution set to duplicate
  • Status changed from new to closed
  • Verified working unset

This should be fixed with #2216.

Note: See TracTickets for help on using tickets.