Skip to content

Loading and sizing of complicated <iframe> trees does not follow specification #34655

@mrobinson

Description

@mrobinson

The asynchronous nature of Servo means that there is observable out-of-sync behavior when<iframe> elements nest in complicated ways. We can ensure synchronous sizing of <iframe>s when a particular tree of Documents have the same origin and are guaranteed to be the in same ScriptThread. When two <iframe> elements have different origins, then there should be no way to observe sizing information between them. The problem comes about when you have a situation like this:

  • iframe1: Origin A
    • iframe2: Origin B
      • iframe3: Origin A

In this case, iframe3 can access the (see #14885 (comment)).

Fixing this is tricky, because it would require synchronously laying out a tree of <iframe>s across different ScriptThreads. Currently a ScriptThread will simply lay out all Pipelines that it control during update the rendering, but different ScriptThreads are completely independent.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-content/scriptRelated to the script threadE-very-complexVery difficult. Do not attempt without significant relevant experience and motivation.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions