Site Isolation Summit:
Chromium Changes
January 2015
What we're changing
Frames are first class objects
FrameTreeNode: 1
FrameTreeNode: 2
FrameTreeNode: 3
RenderFrameHost: A
RFHM
RenderFrameHost: A
RFHM
RenderFrameHost: B
RFHM
RenderFrameProxyHost: B
RenderFrameProxyHost: B
RenderFrameProxyHost: A
Browser Process
WebContents
FrameTree
A1
A2
B3
Visible Page:
Rendering and Input events
A
B
C
B
B
Architecture Cleanup
Replicating frame properties
Renderer
process B
C
B
A
Renderer
process C
C
B
A
C
B
A
Renderer
process A
Sample page
A
B
C
What you need to change
Interactions with RenderView{Host}
1:1 Frame Relationships
Example in content/: MediaPlayerManager CL
1:1 Frame Relationships
bool MediaWebContentsObserver::OnMessageReceived(� const IPC::Message& msg,� RenderFrameHost* render_frame_host) {
� BrowserMediaPlayerManager* player_manager =� GetMediaPlayerManager(render_frame_host);� DCHECK(player_manager);�
bool handled = true;� IPC_BEGIN_MESSAGE_MAP(MediaWebContentsObserver, msg)� IPC_MESSAGE_FORWARD(MediaPlayerHostMsg_EnterFullscreen,� player_manager,� BrowserMediaPlayerManager::OnEnterFullscreen)
MediaPlayerManager Example:
Tracking set of current RenderFrameHosts
Example in chrome/: Task Manager CL
Walking the Frame Tree
Example in content/: Accessibility CL
Testing OOPIFs
Will my CLs break OOPIF?
Are my team’s existing tests affected?
Writing new OOPIF tests
Chromium OOPIF - Q & A