Page 1 of 1

Chromium Site Isolation

PostPosted: Tue May 21, 2019 3:08 pm
by jakec045
Does (or will) CEF support Chromium's Site Isolation http://www.chromium.org/Home/chromium-security/site-isolation process model?

Re: Chromium Site Isolation

PostPosted: Tue May 21, 2019 3:43 pm
by magreenblatt
It is currently disabled by default in CEF. See https://bitbucket.org/chromiumembedded/ ... er-process

Re: Chromium Site Isolation

PostPosted: Tue May 21, 2019 5:10 pm
by jakec045
Thanks for the link - I voted it up.

In our embedding, a common use case is a single/base webpage whose links generate new browser tabs. Those new tabs end up in the same process as the original page. I believe that is expected behavior for target="_blank" links in the current process model. Although, after a number of clicks to create new tabs from the base page, it creates a lot of memory pressure on that one browser subprocess (often eventually leading to that process exiting due to out of memory issues).

From what I understand of site isolation, there will be a new browser subprocess created regardless of how the new tab is triggered which may help resolve the use case above.

Re: Chromium Site Isolation

PostPosted: Wed May 22, 2019 1:06 am
by magreenblatt
Do all of the links share the same origin (protocol + host)? If so, they may continue to use the same renderer process. The most reliable way to force separate processes is by manually creating CefBrowsers with different CefRequestContexts.

Re: Chromium Site Isolation

PostPosted: Thu May 23, 2019 12:00 pm
by jakec045
No, they are from various different protocol : hosts. I'm using the CefSharp wrapper at the moment... in the 'popup' handling I will try handling the operation manually (telling CefSharp/Cef to cancel the 'popup'), but need to be a bit careful since that also detaches the javascript objects associated with the operation (like 'opener' in destination page or return value of a window.open in the source page).