Chromium Code Reviews| 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 |