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 |