| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Represents the browser side of the browser <--> renderer communication | 5 // Represents the browser side of the browser <--> renderer communication |
| 6 // channel. There will be one RenderProcessHost per renderer process. | 6 // channel. There will be one RenderProcessHost per renderer process. |
| 7 | 7 |
| 8 #include "content/browser/renderer_host/render_process_host_impl.h" | 8 #include "content/browser/renderer_host/render_process_host_impl.h" |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 1622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1633 AddUIThreadInterface( | 1633 AddUIThreadInterface( |
| 1634 registry.get(), | 1634 registry.get(), |
| 1635 base::Bind(&BroadcastChannelProvider::Connect, | 1635 base::Bind(&BroadcastChannelProvider::Connect, |
| 1636 base::Unretained( | 1636 base::Unretained( |
| 1637 storage_partition_impl_->GetBroadcastChannelProvider()))); | 1637 storage_partition_impl_->GetBroadcastChannelProvider()))); |
| 1638 if (base::FeatureList::IsEnabled(features::kMemoryCoordinator)) { | 1638 if (base::FeatureList::IsEnabled(features::kMemoryCoordinator)) { |
| 1639 AddUIThreadInterface( | 1639 AddUIThreadInterface( |
| 1640 registry.get(), base::Bind(&CreateMemoryCoordinatorHandle, GetID())); | 1640 registry.get(), base::Bind(&CreateMemoryCoordinatorHandle, GetID())); |
| 1641 } | 1641 } |
| 1642 | 1642 |
| 1643 if (base::FeatureList::IsEnabled(features::kGlobalResourceCoordinator)) { |
| 1644 AddUIThreadInterface(registry.get(), |
| 1645 base::Bind(&CreateResourceCoordinatorProcessInterface, |
| 1646 base::Unretained(this))); |
| 1647 } |
| 1648 |
| 1643 registry->AddInterface( | 1649 registry->AddInterface( |
| 1644 base::Bind(&MimeRegistryImpl::Create), | 1650 base::Bind(&MimeRegistryImpl::Create), |
| 1645 base::CreateSequencedTaskRunnerWithTraits( | 1651 base::CreateSequencedTaskRunnerWithTraits( |
| 1646 {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN, | 1652 {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN, |
| 1647 base::TaskPriority::USER_BLOCKING})); | 1653 base::TaskPriority::USER_BLOCKING})); |
| 1654 |
| 1648 #if BUILDFLAG(USE_MINIKIN_HYPHENATION) | 1655 #if BUILDFLAG(USE_MINIKIN_HYPHENATION) |
| 1649 registry->AddInterface(base::Bind(&hyphenation::HyphenationImpl::Create), | 1656 registry->AddInterface(base::Bind(&hyphenation::HyphenationImpl::Create), |
| 1650 hyphenation::HyphenationImpl::GetTaskRunner()); | 1657 hyphenation::HyphenationImpl::GetTaskRunner()); |
| 1651 #endif | 1658 #endif |
| 1652 | 1659 |
| 1653 registry->AddInterface(base::Bind(&device::GamepadMonitor::Create)); | 1660 registry->AddInterface(base::Bind(&device::GamepadMonitor::Create)); |
| 1654 | 1661 |
| 1655 registry->AddInterface( | 1662 registry->AddInterface( |
| 1656 base::Bind(&PushMessagingManager::BindRequest, | 1663 base::Bind(&PushMessagingManager::BindRequest, |
| 1657 base::Unretained(push_messaging_manager_.get()))); | 1664 base::Unretained(push_messaging_manager_.get()))); |
| 1658 | 1665 |
| 1659 registry->AddInterface( | 1666 registry->AddInterface( |
| 1660 base::Bind(&BackgroundFetchServiceImpl::Create, GetID(), | 1667 base::Bind(&BackgroundFetchServiceImpl::Create, GetID(), |
| 1661 make_scoped_refptr( | 1668 make_scoped_refptr( |
| 1662 storage_partition_impl_->GetBackgroundFetchContext()))); | 1669 storage_partition_impl_->GetBackgroundFetchContext()))); |
| 1663 | 1670 |
| 1664 registry->AddInterface(base::Bind(&RenderProcessHostImpl::CreateMusGpuRequest, | 1671 registry->AddInterface(base::Bind(&RenderProcessHostImpl::CreateMusGpuRequest, |
| 1665 base::Unretained(this))); | 1672 base::Unretained(this))); |
| 1666 | 1673 |
| 1667 registry->AddInterface( | 1674 registry->AddInterface( |
| 1668 base::Bind(&VideoCaptureHost::Create, | 1675 base::Bind(&VideoCaptureHost::Create, |
| 1669 BrowserMainLoop::GetInstance()->media_stream_manager())); | 1676 BrowserMainLoop::GetInstance()->media_stream_manager())); |
| 1670 | 1677 |
| 1671 registry->AddInterface( | 1678 registry->AddInterface( |
| 1672 base::Bind(&metrics::CreateSingleSampleMetricsProvider)); | 1679 base::Bind(&metrics::CreateSingleSampleMetricsProvider)); |
| 1673 | 1680 |
| 1674 if (base::FeatureList::IsEnabled(features::kGlobalResourceCoordinator)) { | |
| 1675 registry->AddInterface(base::Bind( | |
| 1676 &CreateResourceCoordinatorProcessInterface, base::Unretained(this))); | |
| 1677 } | |
| 1678 | |
| 1679 if (base::FeatureList::IsEnabled(features::kOffMainThreadFetch)) { | 1681 if (base::FeatureList::IsEnabled(features::kOffMainThreadFetch)) { |
| 1680 scoped_refptr<ServiceWorkerContextWrapper> service_worker_context( | 1682 scoped_refptr<ServiceWorkerContextWrapper> service_worker_context( |
| 1681 static_cast<ServiceWorkerContextWrapper*>( | 1683 static_cast<ServiceWorkerContextWrapper*>( |
| 1682 storage_partition_impl_->GetServiceWorkerContext())); | 1684 storage_partition_impl_->GetServiceWorkerContext())); |
| 1683 registry->AddInterface( | 1685 registry->AddInterface( |
| 1684 base::Bind(&WorkerURLLoaderFactoryProviderImpl::Create, GetID(), | 1686 base::Bind(&WorkerURLLoaderFactoryProviderImpl::Create, GetID(), |
| 1685 resource_message_filter_, service_worker_context)); | 1687 resource_message_filter_, service_worker_context)); |
| 1686 } | 1688 } |
| 1687 | 1689 |
| 1688 registry->AddInterface( | 1690 registry->AddInterface( |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1912 Send(new ChildProcessMsg_Resume()); | 1914 Send(new ChildProcessMsg_Resume()); |
| 1913 } | 1915 } |
| 1914 | 1916 |
| 1915 mojom::Renderer* RenderProcessHostImpl::GetRendererInterface() { | 1917 mojom::Renderer* RenderProcessHostImpl::GetRendererInterface() { |
| 1916 return renderer_interface_.get(); | 1918 return renderer_interface_.get(); |
| 1917 } | 1919 } |
| 1918 | 1920 |
| 1919 resource_coordinator::ResourceCoordinatorInterface* | 1921 resource_coordinator::ResourceCoordinatorInterface* |
| 1920 RenderProcessHostImpl::GetProcessResourceCoordinator() { | 1922 RenderProcessHostImpl::GetProcessResourceCoordinator() { |
| 1921 if (!process_resource_coordinator_) { | 1923 if (!process_resource_coordinator_) { |
| 1922 base::ProcessHandle process_handle = GetHandle(); | |
| 1923 DCHECK(process_handle); | |
| 1924 | |
| 1925 process_resource_coordinator_ = | 1924 process_resource_coordinator_ = |
| 1926 base::MakeUnique<resource_coordinator::ResourceCoordinatorInterface>( | 1925 base::MakeUnique<resource_coordinator::ResourceCoordinatorInterface>( |
| 1927 ServiceManagerConnection::GetForProcess()->GetConnector(), | 1926 ServiceManagerConnection::GetForProcess()->GetConnector(), |
| 1928 resource_coordinator::CoordinationUnitType::kProcess, | 1927 resource_coordinator::CoordinationUnitType::kProcess); |
| 1929 base::Process(process_handle).Pid()); | |
| 1930 } | 1928 } |
| 1931 return process_resource_coordinator_.get(); | 1929 return process_resource_coordinator_.get(); |
| 1932 } | 1930 } |
| 1933 | 1931 |
| 1934 void RenderProcessHostImpl::SetIsNeverSuitableForReuse() { | 1932 void RenderProcessHostImpl::SetIsNeverSuitableForReuse() { |
| 1935 is_never_suitable_for_reuse_ = true; | 1933 is_never_suitable_for_reuse_ = true; |
| 1936 } | 1934 } |
| 1937 | 1935 |
| 1938 bool RenderProcessHostImpl::MayReuseHost() { | 1936 bool RenderProcessHostImpl::MayReuseHost() { |
| 1939 if (is_never_suitable_for_reuse_) | 1937 if (is_never_suitable_for_reuse_) |
| (...skipping 1865 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3805 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; | 3803 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; |
| 3806 | 3804 |
| 3807 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. | 3805 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. |
| 3808 // Capture the error message in a crash key value. | 3806 // Capture the error message in a crash key value. |
| 3809 base::debug::ScopedCrashKey error_key_value("mojo-message-error", error); | 3807 base::debug::ScopedCrashKey error_key_value("mojo-message-error", error); |
| 3810 bad_message::ReceivedBadMessage(render_process_id, | 3808 bad_message::ReceivedBadMessage(render_process_id, |
| 3811 bad_message::RPH_MOJO_PROCESS_ERROR); | 3809 bad_message::RPH_MOJO_PROCESS_ERROR); |
| 3812 } | 3810 } |
| 3813 | 3811 |
| 3814 } // namespace content | 3812 } // namespace content |
| OLD | NEW |