-
-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Description
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
- iframe2: Origin B
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.