Index: content/browser/browser_child_process_host_impl.cc |
diff --git a/content/browser/browser_child_process_host_impl.cc b/content/browser/browser_child_process_host_impl.cc |
index 156c21b961f17966a4719a916e36df9922058615..8fec39431839d0ca3529630a443509f9afcd421d 100644 |
--- a/content/browser/browser_child_process_host_impl.cc |
+++ b/content/browser/browser_child_process_host_impl.cc |
@@ -66,6 +66,17 @@ BrowserChildProcessHost* BrowserChildProcessHost::Create( |
return new BrowserChildProcessHostImpl(process_type, delegate); |
} |
+BrowserChildProcessHost* BrowserChildProcessHost::FromID(int child_process_id) { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ BrowserChildProcessHostImpl::BrowserChildProcessList* process_list = |
+ g_child_process_list.Pointer(); |
+ for (BrowserChildProcessHostImpl* host : *process_list) { |
+ if (host->GetData().id == child_process_id) |
+ return host; |
+ } |
+ return nullptr; |
+} |
+ |
#if defined(OS_MACOSX) |
base::ProcessMetrics::PortProvider* BrowserChildProcessHost::GetPortProvider() { |
return MachBroker::GetInstance(); |
@@ -187,6 +198,11 @@ void BrowserChildProcessHostImpl::SetHandle(base::ProcessHandle handle) { |
data_.handle = handle; |
} |
+ServiceRegistry* BrowserChildProcessHostImpl::GetServiceRegistry() { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ return service_registry_.get(); |
+} |
+ |
void BrowserChildProcessHostImpl::ForceShutdown() { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
g_child_process_list.Get().remove(this); |
@@ -201,6 +217,12 @@ void BrowserChildProcessHostImpl::AddFilter(BrowserMessageFilter* filter) { |
child_process_host_->AddFilter(filter->GetFilter()); |
} |
+void BrowserChildProcessHostImpl::SetServiceRegistry( |
+ base::WeakPtr<ServiceRegistry> service_registry) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ service_registry_ = service_registry; |
+} |
+ |
void BrowserChildProcessHostImpl::NotifyProcessInstanceCreated( |
const ChildProcessData& data) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |