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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 #include "content/renderer/media/media_stream_center.h" | 70 #include "content/renderer/media/media_stream_center.h" |
71 #include "content/renderer/media/media_stream_dependency_factory.h" | 71 #include "content/renderer/media/media_stream_dependency_factory.h" |
72 #include "content/renderer/media/midi_message_filter.h" | 72 #include "content/renderer/media/midi_message_filter.h" |
73 #include "content/renderer/media/peer_connection_tracker.h" | 73 #include "content/renderer/media/peer_connection_tracker.h" |
74 #include "content/renderer/media/video_capture_impl_manager.h" | 74 #include "content/renderer/media/video_capture_impl_manager.h" |
75 #include "content/renderer/media/video_capture_message_filter.h" | 75 #include "content/renderer/media/video_capture_message_filter.h" |
76 #include "content/renderer/media/webrtc_identity_service.h" | 76 #include "content/renderer/media/webrtc_identity_service.h" |
77 #include "content/renderer/memory_benchmarking_extension.h" | 77 #include "content/renderer/memory_benchmarking_extension.h" |
78 #include "content/renderer/p2p/socket_dispatcher.h" | 78 #include "content/renderer/p2p/socket_dispatcher.h" |
79 #include "content/renderer/render_process_impl.h" | 79 #include "content/renderer/render_process_impl.h" |
80 #include "content/renderer/render_process_visibility_manager.h" | |
81 #include "content/renderer/render_view_impl.h" | 80 #include "content/renderer/render_view_impl.h" |
82 #include "content/renderer/renderer_webkitplatformsupport_impl.h" | 81 #include "content/renderer/renderer_webkitplatformsupport_impl.h" |
83 #include "content/renderer/skia_benchmarking_extension.h" | 82 #include "content/renderer/skia_benchmarking_extension.h" |
84 #include "grit/content_resources.h" | 83 #include "grit/content_resources.h" |
85 #include "ipc/ipc_channel_handle.h" | 84 #include "ipc/ipc_channel_handle.h" |
86 #include "ipc/ipc_forwarding_message_filter.h" | 85 #include "ipc/ipc_forwarding_message_filter.h" |
87 #include "ipc/ipc_platform_file.h" | 86 #include "ipc/ipc_platform_file.h" |
88 #include "media/base/audio_hardware_config.h" | 87 #include "media/base/audio_hardware_config.h" |
89 #include "media/base/media.h" | 88 #include "media/base/media.h" |
90 #include "media/filters/gpu_video_accelerator_factories.h" | 89 #include "media/filters/gpu_video_accelerator_factories.h" |
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 void RenderThreadImpl::RemoveObserver(RenderProcessObserver* observer) { | 614 void RenderThreadImpl::RemoveObserver(RenderProcessObserver* observer) { |
616 observers_.RemoveObserver(observer); | 615 observers_.RemoveObserver(observer); |
617 } | 616 } |
618 | 617 |
619 void RenderThreadImpl::SetResourceDispatcherDelegate( | 618 void RenderThreadImpl::SetResourceDispatcherDelegate( |
620 ResourceDispatcherDelegate* delegate) { | 619 ResourceDispatcherDelegate* delegate) { |
621 resource_dispatcher()->set_delegate(delegate); | 620 resource_dispatcher()->set_delegate(delegate); |
622 } | 621 } |
623 | 622 |
624 void RenderThreadImpl::WidgetHidden() { | 623 void RenderThreadImpl::WidgetHidden() { |
625 DCHECK(hidden_widget_count_ < widget_count_); | 624 DCHECK_LT(hidden_widget_count_, widget_count_); |
626 hidden_widget_count_++; | 625 hidden_widget_count_++; |
627 | 626 |
628 RenderProcessVisibilityManager* manager = | 627 if (widget_count_ && hidden_widget_count_ == widget_count_) { |
629 RenderProcessVisibilityManager::GetInstance(); | 628 #if !defined(SYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE) |
630 manager->WidgetVisibilityChanged(false); | 629 // TODO(vollick): Remove this this heavy-handed approach once we're polling |
631 | 630 // the real system memory pressure. |
632 if (!GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) { | 631 base::MemoryPressureListener::NotifyMemoryPressure( |
633 return; | 632 base::MemoryPressureListener::MEMORY_PRESSURE_MODERATE); |
| 633 #endif |
| 634 if (GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) |
| 635 ScheduleIdleHandler(kInitialIdleHandlerDelayMs); |
634 } | 636 } |
635 | |
636 if (widget_count_ && hidden_widget_count_ == widget_count_) | |
637 ScheduleIdleHandler(kInitialIdleHandlerDelayMs); | |
638 } | 637 } |
639 | 638 |
640 void RenderThreadImpl::WidgetRestored() { | 639 void RenderThreadImpl::WidgetRestored() { |
641 DCHECK_GT(hidden_widget_count_, 0); | 640 DCHECK_GT(hidden_widget_count_, 0); |
642 hidden_widget_count_--; | 641 hidden_widget_count_--; |
643 | 642 |
644 RenderProcessVisibilityManager* manager = | |
645 RenderProcessVisibilityManager::GetInstance(); | |
646 manager->WidgetVisibilityChanged(true); | |
647 | |
648 if (!GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) { | 643 if (!GetContentClient()->renderer()->RunIdleHandlerWhenWidgetsHidden()) { |
649 return; | 644 return; |
650 } | 645 } |
651 | 646 |
652 ScheduleIdleHandler(kLongIdleHandlerDelayMs); | 647 ScheduleIdleHandler(kLongIdleHandlerDelayMs); |
653 } | 648 } |
654 | 649 |
655 void RenderThreadImpl::EnsureWebKitInitialized() { | 650 void RenderThreadImpl::EnsureWebKitInitialized() { |
656 if (webkit_platform_support_) | 651 if (webkit_platform_support_) |
657 return; | 652 return; |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1139 params.renderer_preferences, | 1134 params.renderer_preferences, |
1140 params.web_preferences, | 1135 params.web_preferences, |
1141 new SharedRenderViewCounter(0), | 1136 new SharedRenderViewCounter(0), |
1142 params.view_id, | 1137 params.view_id, |
1143 params.main_frame_routing_id, | 1138 params.main_frame_routing_id, |
1144 params.surface_id, | 1139 params.surface_id, |
1145 params.session_storage_namespace_id, | 1140 params.session_storage_namespace_id, |
1146 params.frame_name, | 1141 params.frame_name, |
1147 false, | 1142 false, |
1148 params.swapped_out, | 1143 params.swapped_out, |
| 1144 params.hidden, |
1149 params.next_page_id, | 1145 params.next_page_id, |
1150 params.screen_info, | 1146 params.screen_info, |
1151 params.accessibility_mode, | 1147 params.accessibility_mode, |
1152 params.allow_partial_swap); | 1148 params.allow_partial_swap); |
1153 } | 1149 } |
1154 | 1150 |
1155 GpuChannelHost* RenderThreadImpl::EstablishGpuChannelSync( | 1151 GpuChannelHost* RenderThreadImpl::EstablishGpuChannelSync( |
1156 CauseForGpuLaunch cause_for_gpu_launch) { | 1152 CauseForGpuLaunch cause_for_gpu_launch) { |
1157 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); | 1153 TRACE_EVENT0("gpu", "RenderThreadImpl::EstablishGpuChannelSync"); |
1158 | 1154 |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1310 | 1306 |
1311 } | 1307 } |
1312 | 1308 |
1313 void RenderThreadImpl::SampleGamepads(WebKit::WebGamepads* data) { | 1309 void RenderThreadImpl::SampleGamepads(WebKit::WebGamepads* data) { |
1314 if (!gamepad_shared_memory_reader_) | 1310 if (!gamepad_shared_memory_reader_) |
1315 gamepad_shared_memory_reader_.reset(new GamepadSharedMemoryReader); | 1311 gamepad_shared_memory_reader_.reset(new GamepadSharedMemoryReader); |
1316 gamepad_shared_memory_reader_->SampleGamepads(*data); | 1312 gamepad_shared_memory_reader_->SampleGamepads(*data); |
1317 } | 1313 } |
1318 | 1314 |
1319 } // namespace content | 1315 } // namespace content |
OLD | NEW |