Origin-keyed agent cluster demos

Resizing an origin-keyed iframe

This page has iframes embedded in resizable container <div>s. The iframes' CSS makes them take up all of their container.

Using CSS-powered resizing

These versions use the CSS resize property to allow resizing the outer <div>.

Cross-origin

This frame is likely to end up in a different process.

Same-origin

This frame will end up in the same process.

Using JS-powered resizing

These versions use JavaScript to perform the resizing. Grab the blue handle. Note the iframes have pointer-events: none on them to allow us to capture mousemove events, so their contents are not interactive.

Cross-origin

This frame is likely to end up in a different process.

Same-origin

This frame will end up in the same process.

Mitigation explorations

These versions also uses JS-powered resizing. They show how we can try to mitigate the problem by using custom background images in the outer page. Also, it makes the inner page extremely expensive to render by using 40,000 stacked gradients to draw the top bar.

If a browser implements a good "checkerboarding" algorithm, it could make "Cross-origin with no custom background" look "Cross-origin with a solid-color background", without the developer having to do anything special. (For Chromium, that's bug 1174279.) But it would be much harder to make "Cross-origin with no custom background" look like "Cross-origin with a custom background".

Same-origin (no custom background)

This should give a no-lag experience while resizing. (Well, the resizing will be slow, but the frame will not lag its container.)

Cross-origin with no custom background

Note how the header lags behind when resizing, and the pink background shows through.

Cross-origin with a solid-color background

Here, the <div> surrounding the frame has a white background, instead of pink.

Cross-origin with a custom background

Here, the <div> surrounding the frame has a background applied to match the iframe.