| 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 <utility> | 10 #include <utility> |
| (...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 // Note: This may reorder messages from the ResourceDispatcher with respect to | 662 // Note: This may reorder messages from the ResourceDispatcher with respect to |
| 663 // other subsystems. | 663 // other subsystems. |
| 664 resource_dispatch_throttler_.reset(new ResourceDispatchThrottler( | 664 resource_dispatch_throttler_.reset(new ResourceDispatchThrottler( |
| 665 static_cast<RenderThread*>(this), renderer_scheduler_.get(), | 665 static_cast<RenderThread*>(this), renderer_scheduler_.get(), |
| 666 base::TimeDelta::FromSecondsD(kThrottledResourceRequestFlushPeriodS), | 666 base::TimeDelta::FromSecondsD(kThrottledResourceRequestFlushPeriodS), |
| 667 kMaxResourceRequestsPerFlushWhenThrottled)); | 667 kMaxResourceRequestsPerFlushWhenThrottled)); |
| 668 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get()); | 668 resource_dispatcher()->set_message_sender(resource_dispatch_throttler_.get()); |
| 669 | 669 |
| 670 media_stream_center_ = NULL; | 670 media_stream_center_ = NULL; |
| 671 | 671 |
| 672 blob_message_filter_ = new BlobMessageFilter(GetFileThreadMessageLoopProxy()); | 672 blob_message_filter_ = new BlobMessageFilter(GetFileThreadTaskRunner()); |
| 673 AddFilter(blob_message_filter_.get()); | 673 AddFilter(blob_message_filter_.get()); |
| 674 db_message_filter_ = new DBMessageFilter(); | 674 db_message_filter_ = new DBMessageFilter(); |
| 675 AddFilter(db_message_filter_.get()); | 675 AddFilter(db_message_filter_.get()); |
| 676 | 676 |
| 677 vc_manager_.reset(new VideoCaptureImplManager()); | 677 vc_manager_.reset(new VideoCaptureImplManager()); |
| 678 AddFilter(vc_manager_->video_capture_message_filter()); | 678 AddFilter(vc_manager_->video_capture_message_filter()); |
| 679 | 679 |
| 680 browser_plugin_manager_.reset(new BrowserPluginManager()); | 680 browser_plugin_manager_.reset(new BrowserPluginManager()); |
| 681 AddObserver(browser_plugin_manager_.get()); | 681 AddObserver(browser_plugin_manager_.get()); |
| 682 | 682 |
| 683 #if defined(ENABLE_WEBRTC) | 683 #if defined(ENABLE_WEBRTC) |
| 684 peer_connection_tracker_.reset(new PeerConnectionTracker()); | 684 peer_connection_tracker_.reset(new PeerConnectionTracker()); |
| 685 AddObserver(peer_connection_tracker_.get()); | 685 AddObserver(peer_connection_tracker_.get()); |
| 686 | 686 |
| 687 p2p_socket_dispatcher_ = | 687 p2p_socket_dispatcher_ = new P2PSocketDispatcher(GetIOTaskRunner().get()); |
| 688 new P2PSocketDispatcher(GetIOMessageLoopProxy().get()); | |
| 689 AddFilter(p2p_socket_dispatcher_.get()); | 688 AddFilter(p2p_socket_dispatcher_.get()); |
| 690 | 689 |
| 691 peer_connection_factory_.reset( | 690 peer_connection_factory_.reset( |
| 692 new PeerConnectionDependencyFactory(p2p_socket_dispatcher_.get())); | 691 new PeerConnectionDependencyFactory(p2p_socket_dispatcher_.get())); |
| 693 | 692 |
| 694 aec_dump_message_filter_ = new AecDumpMessageFilter( | 693 aec_dump_message_filter_ = new AecDumpMessageFilter( |
| 695 GetIOMessageLoopProxy(), message_loop()->task_runner()); | 694 GetIOTaskRunner(), message_loop()->task_runner()); |
| 696 | 695 |
| 697 AddFilter(aec_dump_message_filter_.get()); | 696 AddFilter(aec_dump_message_filter_.get()); |
| 698 | 697 |
| 699 #endif // defined(ENABLE_WEBRTC) | 698 #endif // defined(ENABLE_WEBRTC) |
| 700 | 699 |
| 701 audio_input_message_filter_ = | 700 audio_input_message_filter_ = new AudioInputMessageFilter(GetIOTaskRunner()); |
| 702 new AudioInputMessageFilter(GetIOMessageLoopProxy()); | |
| 703 AddFilter(audio_input_message_filter_.get()); | 701 AddFilter(audio_input_message_filter_.get()); |
| 704 | 702 |
| 705 audio_message_filter_ = new AudioMessageFilter(GetIOMessageLoopProxy()); | 703 audio_message_filter_ = new AudioMessageFilter(GetIOTaskRunner()); |
| 706 AddFilter(audio_message_filter_.get()); | 704 AddFilter(audio_message_filter_.get()); |
| 707 | 705 |
| 708 midi_message_filter_ = new MidiMessageFilter(GetIOMessageLoopProxy()); | 706 midi_message_filter_ = new MidiMessageFilter(GetIOTaskRunner()); |
| 709 AddFilter(midi_message_filter_.get()); | 707 AddFilter(midi_message_filter_.get()); |
| 710 | 708 |
| 711 AddFilter((new IndexedDBMessageFilter(thread_safe_sender()))->GetFilter()); | 709 AddFilter((new IndexedDBMessageFilter(thread_safe_sender()))->GetFilter()); |
| 712 | 710 |
| 713 AddFilter((new CacheStorageMessageFilter(thread_safe_sender()))->GetFilter()); | 711 AddFilter((new CacheStorageMessageFilter(thread_safe_sender()))->GetFilter()); |
| 714 | 712 |
| 715 AddFilter((new ServiceWorkerContextMessageFilter())->GetFilter()); | 713 AddFilter((new ServiceWorkerContextMessageFilter())->GetFilter()); |
| 716 | 714 |
| 717 GetContentClient()->renderer()->RenderThreadStarted(); | 715 GetContentClient()->renderer()->RenderThreadStarted(); |
| 718 | 716 |
| (...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1025 parsed_command_line.GetSwitchValueASCII(switches::kLang); | 1023 parsed_command_line.GetSwitchValueASCII(switches::kLang); |
| 1026 DCHECK(!lang.empty()); | 1024 DCHECK(!lang.empty()); |
| 1027 return lang; | 1025 return lang; |
| 1028 } | 1026 } |
| 1029 | 1027 |
| 1030 IPC::SyncMessageFilter* RenderThreadImpl::GetSyncMessageFilter() { | 1028 IPC::SyncMessageFilter* RenderThreadImpl::GetSyncMessageFilter() { |
| 1031 return sync_message_filter(); | 1029 return sync_message_filter(); |
| 1032 } | 1030 } |
| 1033 | 1031 |
| 1034 scoped_refptr<base::SingleThreadTaskRunner> | 1032 scoped_refptr<base::SingleThreadTaskRunner> |
| 1035 RenderThreadImpl::GetIOMessageLoopProxy() { | 1033 RenderThreadImpl::GetIOTaskRunner() { |
| 1036 return ChildProcess::current()->io_task_runner(); | 1034 return ChildProcess::current()->io_task_runner(); |
| 1037 } | 1035 } |
| 1038 | 1036 |
| 1039 void RenderThreadImpl::AddRoute(int32_t routing_id, IPC::Listener* listener) { | 1037 void RenderThreadImpl::AddRoute(int32_t routing_id, IPC::Listener* listener) { |
| 1040 ChildThreadImpl::GetRouter()->AddRoute(routing_id, listener); | 1038 ChildThreadImpl::GetRouter()->AddRoute(routing_id, listener); |
| 1041 auto it = pending_frame_creates_.find(routing_id); | 1039 auto it = pending_frame_creates_.find(routing_id); |
| 1042 if (it == pending_frame_creates_.end()) | 1040 if (it == pending_frame_creates_.end()) |
| 1043 return; | 1041 return; |
| 1044 | 1042 |
| 1045 RenderFrameImpl* frame = RenderFrameImpl::FromRoutingID(routing_id); | 1043 RenderFrameImpl* frame = RenderFrameImpl::FromRoutingID(routing_id); |
| (...skipping 1002 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2048 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) { | 2046 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) { |
| 2049 // Purge Skia font cache, by setting it to 0 and then again to the | 2047 // Purge Skia font cache, by setting it to 0 and then again to the |
| 2050 // previous limit. | 2048 // previous limit. |
| 2051 size_t font_cache_limit = SkGraphics::SetFontCacheLimit(0); | 2049 size_t font_cache_limit = SkGraphics::SetFontCacheLimit(0); |
| 2052 SkGraphics::SetFontCacheLimit(font_cache_limit); | 2050 SkGraphics::SetFontCacheLimit(font_cache_limit); |
| 2053 } | 2051 } |
| 2054 } | 2052 } |
| 2055 } | 2053 } |
| 2056 | 2054 |
| 2057 scoped_refptr<base::SingleThreadTaskRunner> | 2055 scoped_refptr<base::SingleThreadTaskRunner> |
| 2058 RenderThreadImpl::GetFileThreadMessageLoopProxy() { | 2056 RenderThreadImpl::GetFileThreadTaskRunner() { |
| 2059 DCHECK(message_loop()->task_runner()->BelongsToCurrentThread()); | 2057 DCHECK(message_loop()->task_runner()->BelongsToCurrentThread()); |
| 2060 if (!file_thread_) { | 2058 if (!file_thread_) { |
| 2061 file_thread_.reset(new base::Thread("Renderer::FILE")); | 2059 file_thread_.reset(new base::Thread("Renderer::FILE")); |
| 2062 file_thread_->Start(); | 2060 file_thread_->Start(); |
| 2063 } | 2061 } |
| 2064 return file_thread_->task_runner(); | 2062 return file_thread_->task_runner(); |
| 2065 } | 2063 } |
| 2066 | 2064 |
| 2067 scoped_refptr<base::SingleThreadTaskRunner> | 2065 scoped_refptr<base::SingleThreadTaskRunner> |
| 2068 RenderThreadImpl::GetMediaThreadTaskRunner() { | 2066 RenderThreadImpl::GetMediaThreadTaskRunner() { |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2222 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical) | 2220 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical) |
| 2223 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate; | 2221 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate; |
| 2224 | 2222 |
| 2225 blink::mainThreadIsolate()->MemoryPressureNotification( | 2223 blink::mainThreadIsolate()->MemoryPressureNotification( |
| 2226 v8_memory_pressure_level); | 2224 v8_memory_pressure_level); |
| 2227 blink::MemoryPressureNotificationToWorkerThreadIsolates( | 2225 blink::MemoryPressureNotificationToWorkerThreadIsolates( |
| 2228 v8_memory_pressure_level); | 2226 v8_memory_pressure_level); |
| 2229 } | 2227 } |
| 2230 | 2228 |
| 2231 } // namespace content | 2229 } // namespace content |
| OLD | NEW |