Opened 5 years ago

Closed 2 years ago

#1933 closed change (rejected)

Synchronize deriving of the parent URL among platforms for the content of the anonymous frames

Reported by: sergz Assignee:
Priority: Unknown Milestone:
Module: Unknown Keywords:
Cc: greiner, fhd, jobp, sebastian Blocked By:
Blocking: Platform: Unknown
Ready: no Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

Description

Let's say we have the following page with anonymous frame

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <script type='text/javascript'>
  function onLoad() {
    document.getElementById("xxx").contentWindow.document.write('<img src="https://adblockplus.org/_override-static/global/global/img/sprite-main.png" />')
  };
  </script>
</head>
<body onload="onLoad();">
  <iframe id="xxx" />
</body>
</html>

There are two points:

  • the URL to obtain the list of CSS selectors for the nested frame. (JIC, the CSS from the parent frame are not applied to this nested frame, so we need to inject them).
  • the parent URL for the resources which are loaded by the anonymous frame. We need these URL to call core matcher.

Observed

In the extension for Google Chrome (current version is 1.8.10)

  • we don't inject CSS
  • we use the domain of the resource for the children of the frame. Thus, adblockplus.org for the image from the example above.

In the extension for Firefox (2.6.7):

  • we don't inject CSS
  • we use the domain of the parent frame of the anonymous frame for the children of the anonymous frame. Thus, the domain of the page. It also can be that we use the domain of the root frame (I have not check the case with the nested frames from different domains).

What to do

  • We should inject CSS into such frames.
  • It seems reasonable to use the source of the parent frame of the anonymous frame for the resources of the anonymous frame, so we need to change it in the extension for Google Chrome as well.
  • Check how it works in libadblockplus.
  • Since it's already not the first case when we have questions related to the frame hierarchy, we should think whether we can move it into the core to avoid different behaviour on different clients.

Change History (3)

comment:1 Changed 5 years ago by jobp

  • Cc jobp added

comment:2 Changed 5 years ago by sebastian

  • Cc sebastian added
  • Verified working unset

Note that we never "inject" CSS into the document on Firefox but use a user stylesheet. As far as I know this is true for anonymous frames as well. On Chrome, we do inject CSS into anonymous frames, though we only started recently to do so.

However, I don't see how the frame handling can/should be moved into the core code as the implementation is platform specific.

comment:3 Changed 2 years ago by sebastian

  • Resolution set to rejected
  • Status changed from new to closed
  • Tester set to Unknown

Besides the lack of feedback, the request to unify different implementations became less relevant with the legacy Firefox extension being deprecated, and all browser extensions, now, using the same code.

Note: See TracTickets for help on using tickets.