Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(458)

Side by Side Diff: content/browser/renderer_host/render_process_host_impl.cc

Issue 2851173004: Eliminate bind callback that doesn't take a BindSourceInfo parameter. (Closed)
Patch Set: . Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 } 444 }
445 445
446 private: 446 private:
447 std::unique_ptr<std::map<int, SessionStorageNamespaceMap>> 447 std::unique_ptr<std::map<int, SessionStorageNamespaceMap>>
448 session_storage_namespaces_awaiting_close_; 448 session_storage_namespaces_awaiting_close_;
449 DISALLOW_COPY_AND_ASSIGN(SessionStorageHolder); 449 DISALLOW_COPY_AND_ASSIGN(SessionStorageHolder);
450 }; 450 };
451 451
452 void CreateMemoryCoordinatorHandle( 452 void CreateMemoryCoordinatorHandle(
453 int render_process_id, 453 int render_process_id,
454 const service_manager::BindSourceInfo& source_info,
454 mojom::MemoryCoordinatorHandleRequest request) { 455 mojom::MemoryCoordinatorHandleRequest request) {
455 MemoryCoordinatorImpl::GetInstance()->CreateHandle(render_process_id, 456 MemoryCoordinatorImpl::GetInstance()->CreateHandle(render_process_id,
456 std::move(request)); 457 std::move(request));
457 } 458 }
458 459
459 // Forwards service requests to Service Manager since the renderer cannot launch 460 // Forwards service requests to Service Manager since the renderer cannot launch
460 // out-of-process services on is own. 461 // out-of-process services on is own.
461 template <typename R> 462 template <typename R>
462 void ForwardShapeDetectionRequest(R request) { 463 void ForwardShapeDetectionRequest(const service_manager::BindSourceInfo&,
464 R request) {
465 // TODO(beng): This should really be using the per-profile connector.
463 service_manager::Connector* connector = 466 service_manager::Connector* connector =
464 ServiceManagerConnection::GetForProcess()->GetConnector(); 467 ServiceManagerConnection::GetForProcess()->GetConnector();
465 connector->BindInterface(shape_detection::mojom::kServiceName, 468 connector->BindInterface(shape_detection::mojom::kServiceName,
466 std::move(request)); 469 std::move(request));
467 } 470 }
468 471
469 class WorkerURLLoaderFactoryProviderImpl 472 class WorkerURLLoaderFactoryProviderImpl
470 : public mojom::WorkerURLLoaderFactoryProvider { 473 : public mojom::WorkerURLLoaderFactoryProvider {
471 public: 474 public:
472 static void Create( 475 static void Create(
473 int render_process_id, 476 int render_process_id,
474 scoped_refptr<ResourceMessageFilter> resource_message_filter, 477 scoped_refptr<ResourceMessageFilter> resource_message_filter,
475 scoped_refptr<ServiceWorkerContextWrapper> service_worker_context, 478 scoped_refptr<ServiceWorkerContextWrapper> service_worker_context,
479 const service_manager::BindSourceInfo& source_info,
476 mojom::WorkerURLLoaderFactoryProviderRequest request) { 480 mojom::WorkerURLLoaderFactoryProviderRequest request) {
477 DCHECK(base::FeatureList::IsEnabled(features::kOffMainThreadFetch)); 481 DCHECK(base::FeatureList::IsEnabled(features::kOffMainThreadFetch));
478 mojo::MakeStrongBinding( 482 mojo::MakeStrongBinding(
479 base::MakeUnique<WorkerURLLoaderFactoryProviderImpl>( 483 base::MakeUnique<WorkerURLLoaderFactoryProviderImpl>(
480 render_process_id, resource_message_filter->GetWeakPtr(), 484 render_process_id, resource_message_filter->GetWeakPtr(),
481 std::move(service_worker_context)), 485 std::move(service_worker_context)),
482 std::move(request)); 486 std::move(request));
483 } 487 }
484 WorkerURLLoaderFactoryProviderImpl( 488 WorkerURLLoaderFactoryProviderImpl(
485 int render_process_id, 489 int render_process_id,
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after
1329 scoped_refptr<ServiceWorkerContextWrapper> service_worker_context( 1333 scoped_refptr<ServiceWorkerContextWrapper> service_worker_context(
1330 static_cast<ServiceWorkerContextWrapper*>( 1334 static_cast<ServiceWorkerContextWrapper*>(
1331 storage_partition_impl_->GetServiceWorkerContext())); 1335 storage_partition_impl_->GetServiceWorkerContext()));
1332 registry->AddInterface( 1336 registry->AddInterface(
1333 base::Bind(&WorkerURLLoaderFactoryProviderImpl::Create, GetID(), 1337 base::Bind(&WorkerURLLoaderFactoryProviderImpl::Create, GetID(),
1334 resource_message_filter_, service_worker_context)); 1338 resource_message_filter_, service_worker_context));
1335 } 1339 }
1336 1340
1337 // This is to support usage of WebSockets in cases in which there is no 1341 // This is to support usage of WebSockets in cases in which there is no
1338 // associated RenderFrame (e.g., Shared Workers). 1342 // associated RenderFrame (e.g., Shared Workers).
1339 AddUIThreadInterface( 1343 AddUIThreadInterface(registry.get(),
1340 registry.get(), base::Bind(&WebSocketManager::CreateWebSocket, GetID(), 1344 base::Bind(&WebSocketManager::CreateWebSocket, GetID(),
1341 MSG_ROUTING_NONE)); 1345 MSG_ROUTING_NONE));
1342 1346
1343 // Chrome browser process only provides DiscardableSharedMemory service when 1347 // Chrome browser process only provides DiscardableSharedMemory service when
1344 // Chrome is not running in mus+ash. 1348 // Chrome is not running in mus+ash.
1345 if (!service_manager::ServiceManagerIsRemote()) { 1349 if (!service_manager::ServiceManagerIsRemote()) {
1346 discardable_memory::DiscardableSharedMemoryManager* manager = 1350 discardable_memory::DiscardableSharedMemoryManager* manager =
1347 BrowserMainLoop::GetInstance()->discardable_shared_memory_manager(); 1351 BrowserMainLoop::GetInstance()->discardable_shared_memory_manager();
1348 registry->AddInterface( 1352 registry->AddInterface(
1349 base::Bind(&discardable_memory::DiscardableSharedMemoryManager::Bind, 1353 base::Bind(&discardable_memory::DiscardableSharedMemoryManager::Bind,
1350 base::Unretained(manager))); 1354 base::Unretained(manager)));
1351 } 1355 }
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1394 void RenderProcessHostImpl::GetAssociatedInterface( 1398 void RenderProcessHostImpl::GetAssociatedInterface(
1395 const std::string& name, 1399 const std::string& name,
1396 mojom::AssociatedInterfaceAssociatedRequest request) { 1400 mojom::AssociatedInterfaceAssociatedRequest request) {
1397 int32_t routing_id = 1401 int32_t routing_id =
1398 associated_interface_provider_bindings_.dispatch_context(); 1402 associated_interface_provider_bindings_.dispatch_context();
1399 IPC::Listener* listener = listeners_.Lookup(routing_id); 1403 IPC::Listener* listener = listeners_.Lookup(routing_id);
1400 if (listener) 1404 if (listener)
1401 listener->OnAssociatedInterfaceRequest(name, request.PassHandle()); 1405 listener->OnAssociatedInterfaceRequest(name, request.PassHandle());
1402 } 1406 }
1403 1407
1404 void RenderProcessHostImpl::CreateMusGpuRequest(ui::mojom::GpuRequest request) { 1408 void RenderProcessHostImpl::CreateMusGpuRequest(
1409 const service_manager::BindSourceInfo& source_info,
1410 ui::mojom::GpuRequest request) {
1405 DCHECK_CURRENTLY_ON(BrowserThread::IO); 1411 DCHECK_CURRENTLY_ON(BrowserThread::IO);
1406 if (!gpu_client_) 1412 if (!gpu_client_)
1407 gpu_client_.reset(new GpuClient(GetID())); 1413 gpu_client_.reset(new GpuClient(GetID()));
1408 gpu_client_->Add(std::move(request)); 1414 gpu_client_->Add(std::move(request));
1409 } 1415 }
1410 1416
1411 void RenderProcessHostImpl::CreateOffscreenCanvasProvider( 1417 void RenderProcessHostImpl::CreateOffscreenCanvasProvider(
1418 const service_manager::BindSourceInfo& source_info,
1412 blink::mojom::OffscreenCanvasProviderRequest request) { 1419 blink::mojom::OffscreenCanvasProviderRequest request) {
1413 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1420 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1414 if (!offscreen_canvas_provider_) { 1421 if (!offscreen_canvas_provider_) {
1415 // The client id gets converted to a uint32_t in FrameSinkId. 1422 // The client id gets converted to a uint32_t in FrameSinkId.
1416 uint32_t renderer_client_id = base::checked_cast<uint32_t>(id_); 1423 uint32_t renderer_client_id = base::checked_cast<uint32_t>(id_);
1417 offscreen_canvas_provider_ = 1424 offscreen_canvas_provider_ =
1418 base::MakeUnique<OffscreenCanvasProviderImpl>(renderer_client_id); 1425 base::MakeUnique<OffscreenCanvasProviderImpl>(renderer_client_id);
1419 } 1426 }
1420 offscreen_canvas_provider_->Add(std::move(request)); 1427 offscreen_canvas_provider_->Add(std::move(request));
1421 } 1428 }
1422 1429
1423 void RenderProcessHostImpl::BindFrameSinkProvider( 1430 void RenderProcessHostImpl::BindFrameSinkProvider(
1431 const service_manager::BindSourceInfo& source_info,
1424 mojom::FrameSinkProviderRequest request) { 1432 mojom::FrameSinkProviderRequest request) {
1425 frame_sink_provider_.Bind(std::move(request)); 1433 frame_sink_provider_.Bind(std::move(request));
1426 } 1434 }
1427 1435
1428 void RenderProcessHostImpl::CreateStoragePartitionService( 1436 void RenderProcessHostImpl::CreateStoragePartitionService(
1429 mojo::InterfaceRequest<mojom::StoragePartitionService> request) { 1437 const service_manager::BindSourceInfo& source_info,
1438 mojom::StoragePartitionServiceRequest request) {
1430 // DO NOT REMOVE THIS COMMAND LINE CHECK WITHOUT SECURITY REVIEW! 1439 // DO NOT REMOVE THIS COMMAND LINE CHECK WITHOUT SECURITY REVIEW!
1431 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 1440 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
1432 switches::kMojoLocalStorage)) { 1441 switches::kMojoLocalStorage)) {
1433 storage_partition_impl_->Bind(std::move(request)); 1442 storage_partition_impl_->Bind(std::move(request));
1434 } 1443 }
1435 } 1444 }
1436 1445
1437 int RenderProcessHostImpl::GetNextRoutingID() { 1446 int RenderProcessHostImpl::GetNextRoutingID() {
1438 return widget_helper_->GetNextRoutingID(); 1447 return widget_helper_->GetNextRoutingID();
1439 } 1448 }
(...skipping 1692 matching lines...) Expand 10 before | Expand all | Expand 10 after
3132 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; 3141 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error;
3133 3142
3134 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. 3143 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing.
3135 // Capture the error message in a crash key value. 3144 // Capture the error message in a crash key value.
3136 base::debug::ScopedCrashKey error_key_value("mojo-message-error", error); 3145 base::debug::ScopedCrashKey error_key_value("mojo-message-error", error);
3137 bad_message::ReceivedBadMessage(render_process_id, 3146 bad_message::ReceivedBadMessage(render_process_id,
3138 bad_message::RPH_MOJO_PROCESS_ERROR); 3147 bad_message::RPH_MOJO_PROCESS_ERROR);
3139 } 3148 }
3140 3149
3141 } // namespace content 3150 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.h ('k') | content/browser/websockets/websocket_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698