Out of Process <iframe>
Ken Buchanan <kenrb@chromium.org>
Daniel Cheng <dcheng@chromium.org>
What We Currently Do
What We Currently Do
What We Currently Do
What We Currently Do
What We Want To Do
Why?
Computers have more RAM than ever and we feel like we’re not using enough.
Why?
Why?
Why?
Why?
Why?
Architecture Today
Immediate Goals
Frame → LocalFrame/RemoteFrame
LocalFrame
RemoteFrame
Frame Tree
Frame Tree
Synchronization Issues
* except for frame name, unload events, and probably some other stuff
Conflict Resolution
Process Transition
How We Render Remote Frames
Input Events
A
B
C
User clicks on C, nested 2 processes deep
Event routed back to browser, then to B process
Event routed back to browser, then to C process
Input Events v2
Focus = (focusedFrame, focusedElement)
Focus = (focusedRenderWidget, focusedFrame, focusedElement)
Input Events v2
Focus = (focusedFrame, focusedElement)
Focus = (focusedRenderWidget, focusedFrame, focusedElement)
(tracked in browser process, corresponds to renderer process)
Input Events v2
Other Work
Upcoming Work
How to Write OOPI-aware Code
Known Unknowns
Future Goals
The End