OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 #include "content/renderer/render_thread_impl.h" | 5 #include "content/renderer/render_thread_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <map> | 9 #include <map> |
10 #include <vector> | 10 #include <vector> |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
98 #include "content/renderer/media/renderer_gpu_video_accelerator_factories.h" | 98 #include "content/renderer/media/renderer_gpu_video_accelerator_factories.h" |
99 #include "content/renderer/media/video_capture_impl_manager.h" | 99 #include "content/renderer/media/video_capture_impl_manager.h" |
100 #include "content/renderer/media/video_capture_message_filter.h" | 100 #include "content/renderer/media/video_capture_message_filter.h" |
101 #include "content/renderer/net_info_helper.h" | 101 #include "content/renderer/net_info_helper.h" |
102 #include "content/renderer/p2p/socket_dispatcher.h" | 102 #include "content/renderer/p2p/socket_dispatcher.h" |
103 #include "content/renderer/render_frame_proxy.h" | 103 #include "content/renderer/render_frame_proxy.h" |
104 #include "content/renderer/render_process_impl.h" | 104 #include "content/renderer/render_process_impl.h" |
105 #include "content/renderer/render_view_impl.h" | 105 #include "content/renderer/render_view_impl.h" |
106 #include "content/renderer/renderer_blink_platform_impl.h" | 106 #include "content/renderer/renderer_blink_platform_impl.h" |
107 #include "content/renderer/scheduler/renderer_scheduler.h" | 107 #include "content/renderer/scheduler/renderer_scheduler.h" |
108 #include "content/renderer/scheduler/resource_dispatch_throttler.h" | |
108 #include "content/renderer/service_worker/embedded_worker_context_message_filter .h" | 109 #include "content/renderer/service_worker/embedded_worker_context_message_filter .h" |
109 #include "content/renderer/service_worker/embedded_worker_dispatcher.h" | 110 #include "content/renderer/service_worker/embedded_worker_dispatcher.h" |
110 #include "content/renderer/shared_worker/embedded_shared_worker_stub.h" | 111 #include "content/renderer/shared_worker/embedded_shared_worker_stub.h" |
111 #include "gin/public/debug.h" | 112 #include "gin/public/debug.h" |
112 #include "gpu/GLES2/gl2extchromium.h" | 113 #include "gpu/GLES2/gl2extchromium.h" |
113 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 114 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
114 #include "ipc/ipc_channel_handle.h" | 115 #include "ipc/ipc_channel_handle.h" |
115 #include "ipc/ipc_platform_file.h" | 116 #include "ipc/ipc_platform_file.h" |
116 #include "ipc/mojo/ipc_channel_mojo.h" | 117 #include "ipc/mojo/ipc_channel_mojo.h" |
117 #include "media/base/audio_hardware_config.h" | 118 #include "media/base/audio_hardware_config.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
189 using blink::WebString; | 190 using blink::WebString; |
190 using blink::WebView; | 191 using blink::WebView; |
191 | 192 |
192 namespace content { | 193 namespace content { |
193 | 194 |
194 namespace { | 195 namespace { |
195 | 196 |
196 const int64 kInitialIdleHandlerDelayMs = 1000; | 197 const int64 kInitialIdleHandlerDelayMs = 1000; |
197 const int64 kLongIdleHandlerDelayMs = 30*1000; | 198 const int64 kLongIdleHandlerDelayMs = 30*1000; |
198 | 199 |
200 #if defined(OS_ANDROID) | |
201 // On Android, resource messages can each take ~1.5ms to dispatch on the browser | |
202 // IO thread. Limiting the message rate to 3/frame at 60hz ensures that the | |
203 // induced work takes but a fraction (~1/4) of the overall frame budget. | |
204 const int kMaxResourceRequestsPerFlushWhenThrottled = 3; | |
205 #else | |
206 const int kMaxResourceRequestsPerFlushWhenThrottled = 8; | |
207 #endif | |
208 const double kThrottledResourceRequestFlushPeriodS = 1. / 60.; | |
209 | |
199 // Maximum allocation size allowed for image scaling filters that | 210 // Maximum allocation size allowed for image scaling filters that |
200 // require pre-scaling. Skia will fallback to a filter that doesn't | 211 // require pre-scaling. Skia will fallback to a filter that doesn't |
201 // require pre-scaling if the default filter would require an | 212 // require pre-scaling if the default filter would require an |
202 // allocation that exceeds this limit. | 213 // allocation that exceeds this limit. |
203 const size_t kImageCacheSingleAllocationByteLimit = 64 * 1024 * 1024; | 214 const size_t kImageCacheSingleAllocationByteLimit = 64 * 1024 * 1024; |
204 | 215 |
205 const size_t kEmulatedDiscardableMemoryBytesToKeepWhenWidgetsHidden = | 216 const size_t kEmulatedDiscardableMemoryBytesToKeepWhenWidgetsHidden = |
206 4 * 1024 * 1024; | 217 4 * 1024 * 1024; |
207 | 218 |
208 // Keep the global RenderThreadImpl in a TLS slot so it is impossible to access | 219 // Keep the global RenderThreadImpl in a TLS slot so it is impossible to access |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
467 layout_test_mode_ = false; | 478 layout_test_mode_ = false; |
468 | 479 |
469 appcache_dispatcher_.reset( | 480 appcache_dispatcher_.reset( |
470 new AppCacheDispatcher(Get(), new AppCacheFrontendImpl())); | 481 new AppCacheDispatcher(Get(), new AppCacheFrontendImpl())); |
471 dom_storage_dispatcher_.reset(new DomStorageDispatcher()); | 482 dom_storage_dispatcher_.reset(new DomStorageDispatcher()); |
472 main_thread_indexed_db_dispatcher_.reset(new IndexedDBDispatcher( | 483 main_thread_indexed_db_dispatcher_.reset(new IndexedDBDispatcher( |
473 thread_safe_sender())); | 484 thread_safe_sender())); |
474 renderer_scheduler_ = RendererScheduler::Create(); | 485 renderer_scheduler_ = RendererScheduler::Create(); |
475 channel()->SetListenerTaskRunner(renderer_scheduler_->DefaultTaskRunner()); | 486 channel()->SetListenerTaskRunner(renderer_scheduler_->DefaultTaskRunner()); |
476 embedded_worker_dispatcher_.reset(new EmbeddedWorkerDispatcher()); | 487 embedded_worker_dispatcher_.reset(new EmbeddedWorkerDispatcher()); |
477 | 488 |
davidben
2015/02/03 19:46:47
Could you add a comment here, something like:
//
jdduke (slow)
2015/02/04 01:39:50
Done.
| |
489 resource_dispatch_throttler_.reset(new ResourceDispatchThrottler( | |
490 static_cast<RenderThread*>(this), renderer_scheduler_.get(), | |
491 base::TimeDelta::FromSecondsD(kThrottledResourceRequestFlushPeriodS), | |
492 kMaxResourceRequestsPerFlushWhenThrottled)); | |
493 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get()); | |
494 | |
478 media_stream_center_ = NULL; | 495 media_stream_center_ = NULL; |
479 | 496 |
480 db_message_filter_ = new DBMessageFilter(); | 497 db_message_filter_ = new DBMessageFilter(); |
481 AddFilter(db_message_filter_.get()); | 498 AddFilter(db_message_filter_.get()); |
482 | 499 |
483 vc_manager_.reset(new VideoCaptureImplManager()); | 500 vc_manager_.reset(new VideoCaptureImplManager()); |
484 AddFilter(vc_manager_->video_capture_message_filter()); | 501 AddFilter(vc_manager_->video_capture_message_filter()); |
485 | 502 |
486 browser_plugin_manager_.reset(new BrowserPluginManager()); | 503 browser_plugin_manager_.reset(new BrowserPluginManager()); |
487 AddObserver(browser_plugin_manager_.get()); | 504 AddObserver(browser_plugin_manager_.get()); |
(...skipping 1316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1804 mojo::InterfaceRequest<mojo::ServiceProvider> services, | 1821 mojo::InterfaceRequest<mojo::ServiceProvider> services, |
1805 mojo::ServiceProviderPtr exposed_services) | 1822 mojo::ServiceProviderPtr exposed_services) |
1806 : services(services.Pass()), | 1823 : services(services.Pass()), |
1807 exposed_services(exposed_services.Pass()) { | 1824 exposed_services(exposed_services.Pass()) { |
1808 } | 1825 } |
1809 | 1826 |
1810 RenderThreadImpl::PendingRenderFrameConnect::~PendingRenderFrameConnect() { | 1827 RenderThreadImpl::PendingRenderFrameConnect::~PendingRenderFrameConnect() { |
1811 } | 1828 } |
1812 | 1829 |
1813 } // namespace content | 1830 } // namespace content |
OLD | NEW |