Hi,
Edge would love to help contribute to Chromium by implementing this. I was looking into the lay of the land and noticed a few objects.
ChildProcessSecurityPolicyImpl seems like it was built as a general solution for all the child processes, which I think is a great design!
The snag I'm noticing is you really need an IsolationContext in addition to the SiteInfo to properly take advantage of the ChildProcessSecurityPolicyImpl and this object is tightly coupled with the SiteInstance to the point where the RenderProcessHost and RenderFrameHost don't even own that object and call into SiteInstance to handle locking itself. It seems by design the IsolationContext is not copyable or movable and it's tightly coupled with that, but the way ServiceProcessHost::Options are implemented is you just pass that into the Launch function so all the settings need to be movable or copyable.
I was wondering how you felt about ChildProcessSecurityPolicyImpl's browsing_instance_default_isolation_states_ being augmented to be a map of the BrowsingInstanceId to the Isolation context. Then instead of passing the Isolation context around, we can just pass the BrowsingInstanceId around and do a lookup for the isolation context. This would avoid the potential lifetime problems involved in passing the IsolationContext or the SiteInstance or the BrowsingInstance.
Thanks,Emily
Sent from Outlook