Index: content/browser/site_instance_impl.h |
diff --git a/content/browser/site_instance_impl.h b/content/browser/site_instance_impl.h |
index fc2ad85bd30738cf2167cc2bd8735aeebe7ced99..99d7b645f16b0ac160efac671643a98f20b421ee 100644 |
--- a/content/browser/site_instance_impl.h |
+++ b/content/browser/site_instance_impl.h |
@@ -124,9 +124,25 @@ class CONTENT_EXPORT SiteInstanceImpl final : public SiteInstance, |
static bool DoesSiteRequireDedicatedProcess(BrowserContext* browser_context, |
const GURL& url); |
+ // Add an origin to the list of origins that require process isolation. |
+ // When making process model decisions for such origins, the full |
+ // scheme+host+port tuple rather than eTLD+1 will be used. SiteInstances for |
Charlie Reis
2017/05/05 23:18:51
Maybe clarify that the default is scheme + eTLD+1?
alexmos
2017/05/16 17:26:38
Yes, thanks, I was sloppy there. Updated here and
|
+ // these origins will also use the full origin as site URL. |
Charlie Reis
2017/05/05 23:18:51
This is the first use of url::Origin in this class
alexmos
2017/05/16 17:26:38
Yes, good idea. This moved to ChildProcessSecurit
|
+ static void AddIsolatedOrigin(const url::Origin& origin); |
+ |
+ // Register a set of isolated origins as specified on the command line with |
+ // the --isolate-origins flag. |origin_list| is the flag's value, which |
+ // contains the list of comma-separated scheme-host-port origins. See |
+ // AddIsolatedOrigin for definition of an isolated origin. |
+ static void AddIsolatedOriginsFromCommandLine(const std::string& origin_list); |
+ |
+ // Helper to check whether an origin requires origin-wide process isolation. |
+ static bool IsIsolatedOrigin(const url::Origin& origin); |
+ |
private: |
friend class BrowsingInstance; |
friend class SiteInstanceTestBrowserClient; |
+ FRIEND_TEST_ALL_PREFIXES(SiteInstanceTest, IsolateOriginsFromCommandLine); |
// Create a new SiteInstance. Only BrowsingInstance should call this |
// directly; clients should use Create() or GetRelatedSiteInstance() instead. |
@@ -153,6 +169,12 @@ class CONTENT_EXPORT SiteInstanceImpl final : public SiteInstance, |
is_default_subframe_site_instance_ = true; |
} |
+ // Tracks origins for which the entire origin should be treated as a site |
+ // when making process model decisions, rather than the origin's eTLD+1. Each |
Charlie Reis
2017/05/05 23:18:51
Same nit about previous definition of site.
alexmos
2017/05/16 17:26:38
Done.
|
+ // of these origins requires a dedicated process. |
+ using IsolatedOriginSet = std::set<url::Origin>; |
+ static IsolatedOriginSet* GetIsolatedOrigins(); |
+ |
// An object used to construct RenderProcessHosts. |
static const RenderProcessHostFactory* g_render_process_host_factory_; |