OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/browser/memory/memory_coordinator_impl.h" | 5 #include "content/browser/memory/memory_coordinator_impl.h" |
6 | 6 |
7 #include "base/threading/thread_task_runner_handle.h" | 7 #include "base/threading/thread_task_runner_handle.h" |
8 #include "content/browser/memory/memory_monitor.h" | 8 #include "content/browser/memory/memory_monitor.h" |
9 #include "content/public/common/content_features.h" | 9 #include "content/public/common/content_features.h" |
10 | 10 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 DCHECK(last_state_change_.is_null()); | 95 DCHECK(last_state_change_.is_null()); |
96 DCHECK(ValidateParameters()); | 96 DCHECK(ValidateParameters()); |
97 ScheduleUpdateState(base::TimeDelta()); | 97 ScheduleUpdateState(base::TimeDelta()); |
98 } | 98 } |
99 | 99 |
100 void MemoryCoordinatorImpl::OnChildAdded(int render_process_id) { | 100 void MemoryCoordinatorImpl::OnChildAdded(int render_process_id) { |
101 // Populate the global state as an initial state of a newly created process. | 101 // Populate the global state as an initial state of a newly created process. |
102 SetMemoryState(render_process_id, ToMojomMemoryState(current_state_)); | 102 SetMemoryState(render_process_id, ToMojomMemoryState(current_state_)); |
103 } | 103 } |
104 | 104 |
| 105 base::MemoryState MemoryCoordinatorImpl::GetCurrentMemoryState() const { |
| 106 return current_state_; |
| 107 } |
| 108 |
105 base::MemoryState MemoryCoordinatorImpl::CalculateNextState() { | 109 base::MemoryState MemoryCoordinatorImpl::CalculateNextState() { |
106 using MemoryState = base::MemoryState; | 110 using MemoryState = base::MemoryState; |
107 | 111 |
108 int available = memory_monitor_->GetFreeMemoryUntilCriticalMB(); | 112 int available = memory_monitor_->GetFreeMemoryUntilCriticalMB(); |
109 if (available <= 0) | 113 if (available <= 0) |
110 return MemoryState::SUSPENDED; | 114 return MemoryState::SUSPENDED; |
111 | 115 |
112 int expected_renderer_count = available / expected_renderer_size_; | 116 int expected_renderer_count = available / expected_renderer_size_; |
113 | 117 |
114 switch (current_state_) { | 118 switch (current_state_) { |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 } | 186 } |
183 | 187 |
184 bool MemoryCoordinatorImpl::ValidateParameters() { | 188 bool MemoryCoordinatorImpl::ValidateParameters() { |
185 return (new_renderers_until_throttled_ > new_renderers_until_suspended_) && | 189 return (new_renderers_until_throttled_ > new_renderers_until_suspended_) && |
186 (new_renderers_back_to_normal_ > new_renderers_back_to_throttled_) && | 190 (new_renderers_back_to_normal_ > new_renderers_back_to_throttled_) && |
187 (new_renderers_back_to_normal_ > new_renderers_until_throttled_) && | 191 (new_renderers_back_to_normal_ > new_renderers_until_throttled_) && |
188 (new_renderers_back_to_throttled_ > new_renderers_until_suspended_); | 192 (new_renderers_back_to_throttled_ > new_renderers_until_suspended_); |
189 } | 193 } |
190 | 194 |
191 } // namespace content | 195 } // namespace content |
OLD | NEW |