| 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 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 #include "content/browser/renderer_host/render_widget_host_impl.h" | 113 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 114 #include "content/browser/renderer_host/text_input_client_message_filter.h" | 114 #include "content/browser/renderer_host/text_input_client_message_filter.h" |
| 115 #include "content/browser/resolve_proxy_msg_helper.h" | 115 #include "content/browser/resolve_proxy_msg_helper.h" |
| 116 #include "content/browser/service_worker/service_worker_context_wrapper.h" | 116 #include "content/browser/service_worker/service_worker_context_wrapper.h" |
| 117 #include "content/browser/service_worker/service_worker_dispatcher_host.h" | 117 #include "content/browser/service_worker/service_worker_dispatcher_host.h" |
| 118 #include "content/browser/shared_worker/shared_worker_message_filter.h" | 118 #include "content/browser/shared_worker/shared_worker_message_filter.h" |
| 119 #include "content/browser/shared_worker/worker_storage_partition.h" | 119 #include "content/browser/shared_worker/worker_storage_partition.h" |
| 120 #include "content/browser/speech/speech_recognition_dispatcher_host.h" | 120 #include "content/browser/speech/speech_recognition_dispatcher_host.h" |
| 121 #include "content/browser/storage_partition_impl.h" | 121 #include "content/browser/storage_partition_impl.h" |
| 122 #include "content/browser/streams/stream_context.h" | 122 #include "content/browser/streams/stream_context.h" |
| 123 #include "content/browser/time_zone_monitor.h" |
| 123 #include "content/browser/tracing/trace_message_filter.h" | 124 #include "content/browser/tracing/trace_message_filter.h" |
| 124 #include "content/browser/websockets/websocket_manager.h" | 125 #include "content/browser/websockets/websocket_manager.h" |
| 125 #include "content/browser/webui/web_ui_controller_factory_registry.h" | 126 #include "content/browser/webui/web_ui_controller_factory_registry.h" |
| 126 #include "content/common/child_process_host_impl.h" | 127 #include "content/common/child_process_host_impl.h" |
| 127 #include "content/common/child_process_messages.h" | 128 #include "content/common/child_process_messages.h" |
| 128 #include "content/common/content_switches_internal.h" | 129 #include "content/common/content_switches_internal.h" |
| 129 #include "content/common/frame_messages.h" | 130 #include "content/common/frame_messages.h" |
| 130 #include "content/common/gpu_host_messages.h" | 131 #include "content/common/gpu_host_messages.h" |
| 131 #include "content/common/in_process_child_thread_params.h" | 132 #include "content/common/in_process_child_thread_params.h" |
| 132 #include "content/common/mojo/mojo_child_connection.h" | 133 #include "content/common/mojo/mojo_child_connection.h" |
| (...skipping 1100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1233 AddUIThreadInterface( | 1234 AddUIThreadInterface( |
| 1234 registry.get(), | 1235 registry.get(), |
| 1235 base::Bind(&BroadcastChannelProvider::Connect, | 1236 base::Bind(&BroadcastChannelProvider::Connect, |
| 1236 base::Unretained( | 1237 base::Unretained( |
| 1237 storage_partition_impl_->GetBroadcastChannelProvider()))); | 1238 storage_partition_impl_->GetBroadcastChannelProvider()))); |
| 1238 if (base::FeatureList::IsEnabled(features::kMemoryCoordinator)) { | 1239 if (base::FeatureList::IsEnabled(features::kMemoryCoordinator)) { |
| 1239 AddUIThreadInterface( | 1240 AddUIThreadInterface( |
| 1240 registry.get(), base::Bind(&CreateMemoryCoordinatorHandle, GetID())); | 1241 registry.get(), base::Bind(&CreateMemoryCoordinatorHandle, GetID())); |
| 1241 } | 1242 } |
| 1242 | 1243 |
| 1244 // BrowserMainLoop, which owns TimeZoneMonitor, is alive for the lifetime of |
| 1245 // Mojo communication (see BrowserMainLoop::ShutdownThreadsAndCleanUp(), |
| 1246 // which shuts down Mojo). Hence, passing that TimeZoneMonitor instance as |
| 1247 // a raw pointer here is safe. |
| 1248 AddUIThreadInterface( |
| 1249 registry.get(), |
| 1250 base::Bind(&TimeZoneMonitor::Bind, |
| 1251 base::Unretained( |
| 1252 BrowserMainLoop::GetInstance()->time_zone_monitor()))); |
| 1253 |
| 1243 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner = | 1254 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner = |
| 1244 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE); | 1255 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE); |
| 1245 registry->AddInterface(base::Bind(&MimeRegistryImpl::Create), | 1256 registry->AddInterface(base::Bind(&MimeRegistryImpl::Create), |
| 1246 file_task_runner); | 1257 file_task_runner); |
| 1247 #if defined(USE_MINIKIN_HYPHENATION) | 1258 #if defined(USE_MINIKIN_HYPHENATION) |
| 1248 registry->AddInterface(base::Bind(&hyphenation::HyphenationImpl::Create), | 1259 registry->AddInterface(base::Bind(&hyphenation::HyphenationImpl::Create), |
| 1249 file_task_runner); | 1260 file_task_runner); |
| 1250 #endif | 1261 #endif |
| 1251 | 1262 |
| 1252 // These callbacks will be run immediately on the IO thread. | 1263 // These callbacks will be run immediately on the IO thread. |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1306 | 1317 |
| 1307 int RenderProcessHostImpl::GetNextRoutingID() { | 1318 int RenderProcessHostImpl::GetNextRoutingID() { |
| 1308 return widget_helper_->GetNextRoutingID(); | 1319 return widget_helper_->GetNextRoutingID(); |
| 1309 } | 1320 } |
| 1310 | 1321 |
| 1311 void RenderProcessHostImpl::ResumeDeferredNavigation( | 1322 void RenderProcessHostImpl::ResumeDeferredNavigation( |
| 1312 const GlobalRequestID& request_id) { | 1323 const GlobalRequestID& request_id) { |
| 1313 widget_helper_->ResumeDeferredNavigation(request_id); | 1324 widget_helper_->ResumeDeferredNavigation(request_id); |
| 1314 } | 1325 } |
| 1315 | 1326 |
| 1316 void RenderProcessHostImpl::NotifyTimezoneChange(const std::string& zone_id) { | |
| 1317 Send(new ViewMsg_TimezoneChange(zone_id)); | |
| 1318 } | |
| 1319 | |
| 1320 shell::InterfaceProvider* RenderProcessHostImpl::GetRemoteInterfaces() { | 1327 shell::InterfaceProvider* RenderProcessHostImpl::GetRemoteInterfaces() { |
| 1321 return mojo_child_connection_->GetRemoteInterfaces(); | 1328 return mojo_child_connection_->GetRemoteInterfaces(); |
| 1322 } | 1329 } |
| 1323 | 1330 |
| 1324 std::unique_ptr<base::SharedPersistentMemoryAllocator> | 1331 std::unique_ptr<base::SharedPersistentMemoryAllocator> |
| 1325 RenderProcessHostImpl::TakeMetricsAllocator() { | 1332 RenderProcessHostImpl::TakeMetricsAllocator() { |
| 1326 return std::move(metrics_allocator_); | 1333 return std::move(metrics_allocator_); |
| 1327 } | 1334 } |
| 1328 | 1335 |
| 1329 const base::TimeTicks& RenderProcessHostImpl::GetInitTimeForNavigationMetrics() | 1336 const base::TimeTicks& RenderProcessHostImpl::GetInitTimeForNavigationMetrics() |
| (...skipping 1656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2986 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; | 2993 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; |
| 2987 | 2994 |
| 2988 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. Alias | 2995 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. Alias |
| 2989 // enough information here so that we can determine what the bad message was. | 2996 // enough information here so that we can determine what the bad message was. |
| 2990 base::debug::Alias(&error); | 2997 base::debug::Alias(&error); |
| 2991 bad_message::ReceivedBadMessage(process.get(), | 2998 bad_message::ReceivedBadMessage(process.get(), |
| 2992 bad_message::RPH_MOJO_PROCESS_ERROR); | 2999 bad_message::RPH_MOJO_PROCESS_ERROR); |
| 2993 } | 3000 } |
| 2994 | 3001 |
| 2995 } // namespace content | 3002 } // namespace content |
| OLD | NEW |