Index: content/browser/site_instance_impl.cc |
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc |
index a4c886260e008f39fc30ab153d898df9fd09f2d0..3c6d83886b67aa141cb61ea061e61d659e7a30f2 100644 |
--- a/content/browser/site_instance_impl.cc |
+++ b/content/browser/site_instance_impl.cc |
@@ -5,6 +5,7 @@ |
#include "content/browser/site_instance_impl.h" |
#include "content/browser/browsing_instance.h" |
+#include "content/browser/child_process_launcher.h" |
#include "content/browser/child_process_security_policy_impl.h" |
#include "content/browser/frame_host/debug_urls.h" |
#include "content/browser/frame_host/frame_tree_node.h" |
@@ -47,17 +48,19 @@ SiteInstanceImpl::~SiteInstanceImpl() { |
} |
scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::Create( |
- BrowserContext* browser_context) { |
- return make_scoped_refptr( |
- new SiteInstanceImpl(new BrowsingInstance(browser_context))); |
+ BrowserContext* browser_context, |
+ int child_process_param_id) { |
+ return make_scoped_refptr(new SiteInstanceImpl( |
+ new BrowsingInstance(browser_context, child_process_param_id))); |
} |
scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::CreateForURL( |
BrowserContext* browser_context, |
- const GURL& url) { |
+ const GURL& url, |
+ int child_process_param_id) { |
// This will create a new SiteInstance and BrowsingInstance. |
scoped_refptr<BrowsingInstance> instance( |
- new BrowsingInstance(browser_context)); |
+ new BrowsingInstance(browser_context, child_process_param_id)); |
return instance->GetSiteInstanceForURL(url); |
} |
@@ -96,7 +99,8 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, |
// Gets the correct render process to use for this SiteInstance. |
RenderProcessHost* GetProcessHost(SiteInstance* site_instance, |
- bool is_for_guests_only) { |
+ bool is_for_guests_only, |
+ int child_process_param_id) { |
StoragePartition* default_partition = |
BrowserContext::GetDefaultStoragePartition(browser_context_); |
StoragePartition* partition = |
@@ -107,7 +111,7 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, |
if (partition != default_partition || is_for_guests_only) { |
RenderProcessHostImpl* host = new RenderProcessHostImpl( |
browser_context_, static_cast<StoragePartitionImpl*>(partition), |
- is_for_guests_only); |
+ is_for_guests_only, child_process_param_id); |
host->SetIsNeverSuitableForReuse(); |
return host; |
} |
@@ -120,7 +124,7 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data, |
host_ = new RenderProcessHostImpl( |
browser_context_, static_cast<StoragePartitionImpl*>(partition), |
- false /* for guests only */); |
+ false /* for guests only */, child_process_param_id); |
host_->SetIsNeverSuitableForReuse(); |
host_->AddObserver(this); |
@@ -154,7 +158,8 @@ RenderProcessHost* SiteInstanceImpl::GetDefaultSubframeProcessHost( |
browser_context->SetUserData(kDefaultSubframeProcessHostHolderKey, holder); |
} |
- return holder->GetProcessHost(this, is_for_guests_only); |
+ return holder->GetProcessHost(this, is_for_guests_only, |
+ browsing_instance_->child_process_param_id()); |
boliu
2017/02/23 00:51:30
I think this is the thing being discussed in the b
|
} |
RenderProcessHost* SiteInstanceImpl::GetProcess() { |
@@ -201,8 +206,9 @@ RenderProcessHost* SiteInstanceImpl::GetProcess() { |
StoragePartitionImpl* partition = |
static_cast<StoragePartitionImpl*>( |
BrowserContext::GetStoragePartition(browser_context, this)); |
- process_ = new RenderProcessHostImpl(browser_context, partition, |
- is_for_guests_only); |
+ process_ = new RenderProcessHostImpl( |
+ browser_context, partition, is_for_guests_only, |
+ browsing_instance_->child_process_param_id()); |
} |
} |
CHECK(process_); |
@@ -362,15 +368,17 @@ BrowserContext* SiteInstanceImpl::GetBrowserContext() const { |
// static |
scoped_refptr<SiteInstance> SiteInstance::Create( |
- BrowserContext* browser_context) { |
- return SiteInstanceImpl::Create(browser_context); |
+ BrowserContext* browser_context, |
+ int child_process_param_id) { |
+ return SiteInstanceImpl::Create(browser_context, child_process_param_id); |
} |
// static |
scoped_refptr<SiteInstance> SiteInstance::CreateForURL( |
BrowserContext* browser_context, |
const GURL& url) { |
- return SiteInstanceImpl::CreateForURL(browser_context, url); |
+ return SiteInstanceImpl::CreateForURL(browser_context, url, |
+ ChildProcessLauncher::DEFAULT_PARAM_ID); |
} |
// static |