Chromium Code Reviews| 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 685 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 696 storage_partition_impl_->GetIndexedDBContext(), | 696 storage_partition_impl_->GetIndexedDBContext(), |
| 697 ChromeBlobStorageContext::GetFor(browser_context_))), | 697 ChromeBlobStorageContext::GetFor(browser_context_))), |
| 698 channel_connected_(false), | 698 channel_connected_(false), |
| 699 sent_render_process_ready_(false), | 699 sent_render_process_ready_(false), |
| 700 #if defined(OS_ANDROID) | 700 #if defined(OS_ANDROID) |
| 701 never_signaled_(base::WaitableEvent::ResetPolicy::MANUAL, | 701 never_signaled_(base::WaitableEvent::ResetPolicy::MANUAL, |
| 702 base::WaitableEvent::InitialState::NOT_SIGNALED), | 702 base::WaitableEvent::InitialState::NOT_SIGNALED), |
| 703 #endif | 703 #endif |
| 704 instance_weak_factory_( | 704 instance_weak_factory_( |
| 705 new base::WeakPtrFactory<RenderProcessHostImpl>(this)), | 705 new base::WeakPtrFactory<RenderProcessHostImpl>(this)), |
| 706 frame_sink_provider_(id_), | |
| 706 weak_factory_(this) { | 707 weak_factory_(this) { |
| 707 widget_helper_ = new RenderWidgetHelper(); | 708 widget_helper_ = new RenderWidgetHelper(); |
| 708 | 709 |
| 709 ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetID()); | 710 ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetID()); |
| 710 | 711 |
| 711 CHECK(!BrowserMainRunner::ExitedMainMessageLoop()); | 712 CHECK(!BrowserMainRunner::ExitedMainMessageLoop()); |
| 712 RegisterHost(GetID(), this); | 713 RegisterHost(GetID(), this); |
| 713 g_all_hosts.Get().set_check_on_null_data(true); | 714 g_all_hosts.Get().set_check_on_null_data(true); |
| 714 // Initialize |child_process_activity_time_| to a reasonable value. | 715 // Initialize |child_process_activity_time_| to a reasonable value. |
| 715 mark_child_process_activity_time(); | 716 mark_child_process_activity_time(); |
| (...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1233 base::Bind( | 1234 base::Bind( |
| 1234 &PaymentAppContextImpl::CreatePaymentManager, | 1235 &PaymentAppContextImpl::CreatePaymentManager, |
| 1235 base::Unretained(storage_partition_impl_->GetPaymentAppContext()))); | 1236 base::Unretained(storage_partition_impl_->GetPaymentAppContext()))); |
| 1236 | 1237 |
| 1237 AddUIThreadInterface( | 1238 AddUIThreadInterface( |
| 1238 registry.get(), | 1239 registry.get(), |
| 1239 base::Bind(&RenderProcessHostImpl:: | 1240 base::Bind(&RenderProcessHostImpl:: |
| 1240 CreateOffscreenCanvasCompositorFrameSinkProvider, | 1241 CreateOffscreenCanvasCompositorFrameSinkProvider, |
| 1241 base::Unretained(this))); | 1242 base::Unretained(this))); |
| 1242 | 1243 |
| 1244 AddUIThreadInterface( | |
| 1245 registry.get(), | |
| 1246 base::Bind(&RenderProcessHostImpl::CreateFrameSinkProvider, | |
| 1247 base::Unretained(this))); | |
| 1248 | |
| 1243 AddUIThreadInterface(registry.get(), | 1249 AddUIThreadInterface(registry.get(), |
| 1244 base::Bind(&OffscreenCanvasSurfaceFactoryImpl::Create)); | 1250 base::Bind(&OffscreenCanvasSurfaceFactoryImpl::Create)); |
| 1245 AddUIThreadInterface( | 1251 AddUIThreadInterface( |
| 1246 registry.get(), | 1252 registry.get(), |
| 1247 base::Bind(&BackgroundSyncContext::CreateService, | 1253 base::Bind(&BackgroundSyncContext::CreateService, |
| 1248 base::Unretained( | 1254 base::Unretained( |
| 1249 storage_partition_impl_->GetBackgroundSyncContext()))); | 1255 storage_partition_impl_->GetBackgroundSyncContext()))); |
| 1250 AddUIThreadInterface( | 1256 AddUIThreadInterface( |
| 1251 registry.get(), | 1257 registry.get(), |
| 1252 base::Bind(&PlatformNotificationContextImpl::CreateService, | 1258 base::Bind(&PlatformNotificationContextImpl::CreateService, |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1360 void RenderProcessHostImpl::CreateOffscreenCanvasCompositorFrameSinkProvider( | 1366 void RenderProcessHostImpl::CreateOffscreenCanvasCompositorFrameSinkProvider( |
| 1361 blink::mojom::OffscreenCanvasCompositorFrameSinkProviderRequest request) { | 1367 blink::mojom::OffscreenCanvasCompositorFrameSinkProviderRequest request) { |
| 1362 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1368 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 1363 if (!offscreen_canvas_provider_) { | 1369 if (!offscreen_canvas_provider_) { |
| 1364 offscreen_canvas_provider_.reset( | 1370 offscreen_canvas_provider_.reset( |
| 1365 new OffscreenCanvasCompositorFrameSinkProviderImpl()); | 1371 new OffscreenCanvasCompositorFrameSinkProviderImpl()); |
| 1366 } | 1372 } |
| 1367 offscreen_canvas_provider_->Add(std::move(request)); | 1373 offscreen_canvas_provider_->Add(std::move(request)); |
| 1368 } | 1374 } |
| 1369 | 1375 |
| 1376 void RenderProcessHostImpl::CreateFrameSinkProvider( | |
| 1377 mojom::FrameSinkProviderRequest request) { | |
| 1378 frame_sink_provider_.Bind(std::move(request)); | |
|
Ken Rockot(use gerrit already)
2017/04/10 23:31:11
nit: Maybe BindFrameSinkProvider is a better name
| |
| 1379 } | |
| 1380 | |
| 1370 void RenderProcessHostImpl::CreateStoragePartitionService( | 1381 void RenderProcessHostImpl::CreateStoragePartitionService( |
| 1371 mojo::InterfaceRequest<mojom::StoragePartitionService> request) { | 1382 mojo::InterfaceRequest<mojom::StoragePartitionService> request) { |
| 1372 // DO NOT REMOVE THIS COMMAND LINE CHECK WITHOUT SECURITY REVIEW! | 1383 // DO NOT REMOVE THIS COMMAND LINE CHECK WITHOUT SECURITY REVIEW! |
| 1373 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 1384 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 1374 switches::kMojoLocalStorage)) { | 1385 switches::kMojoLocalStorage)) { |
| 1375 storage_partition_impl_->Bind(std::move(request)); | 1386 storage_partition_impl_->Bind(std::move(request)); |
| 1376 } | 1387 } |
| 1377 } | 1388 } |
| 1378 | 1389 |
| 1379 int RenderProcessHostImpl::GetNextRoutingID() { | 1390 int RenderProcessHostImpl::GetNextRoutingID() { |
| (...skipping 1678 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3058 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; | 3069 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; |
| 3059 | 3070 |
| 3060 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. | 3071 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. |
| 3061 // Capture the error message in a crash key value. | 3072 // Capture the error message in a crash key value. |
| 3062 base::debug::ScopedCrashKey error_key_value("mojo-message-error", error); | 3073 base::debug::ScopedCrashKey error_key_value("mojo-message-error", error); |
| 3063 bad_message::ReceivedBadMessage(render_process_id, | 3074 bad_message::ReceivedBadMessage(render_process_id, |
| 3064 bad_message::RPH_MOJO_PROCESS_ERROR); | 3075 bad_message::RPH_MOJO_PROCESS_ERROR); |
| 3065 } | 3076 } |
| 3066 | 3077 |
| 3067 } // namespace content | 3078 } // namespace content |
| OLD | NEW |