We have detected a related issue when we use the --site-per-process switch.
Steps to reproduce :
- Load a web page with several frames like youtube.com
- Load a web page without frames like google.com
- Call browser.GetFrameNames while you are in google.com and the returned names include names that only existed in the first page.
If you don't use the --site-per-process switch or you visit google.com in the first place then browser.GetFrameNames works perfectly.
We tested this using a CEF4Delphi demo with CEF 3.3538.1848.g1d1fe01 which includes Chromium 70.0.3538.77
Documentation on the site-per-process command-line flag:
Supporting site-per-process in CEF will involve the following changes:
SendProcessMessage
method from CefBrowser (WebContentsObserver) to CefFrame (RenderFrameHost). (DONE)OnProcessMessageReceived
. (DONE)CefMessageRouter
to work with the new model. (DONE)CefContentBrowserClient::ShouldEnableStrictSiteIsolation
method will only be called to determine the default state for site isolation if both the--site-per-process
(to enable) and--disable-site-isolation-trials
(to disable) command-line flags are unspecified. There's also aShouldDisableSiteIsolation
method which currently returns false in //content and true in //chrome for low-memory systems. (DONE)chrome://process-internals
(DONE)--enable-features=OutOfBlinkCors
(see issue#2716for details).--enable-features=MimeHandlerViewInCrossProcessFrame
(see issue#2727for details).