Chromium Code Reviews| Index: content/renderer/media/renderer_webmediaplayer_delegate.cc |
| diff --git a/content/renderer/media/renderer_webmediaplayer_delegate.cc b/content/renderer/media/renderer_webmediaplayer_delegate.cc |
| index 2ae2b8bd2838c03dae8e2d1218572e4947b200c1..9a4db2bf4213a960250b911b5add2073686ec8bf 100644 |
| --- a/content/renderer/media/renderer_webmediaplayer_delegate.cc |
| +++ b/content/renderer/media/renderer_webmediaplayer_delegate.cc |
| @@ -220,9 +220,15 @@ void RendererWebMediaPlayerDelegate::RemoveIdleDelegate(int delegate_id) { |
| void RendererWebMediaPlayerDelegate::CleanupIdleDelegates( |
| base::TimeDelta timeout) { |
| + // Drop reentrant cleanups which can occur during forced suspension when the |
| + // number of idle delegates is too high for a given device. |
| + if (idle_cleanup_running_) |
| + return; |
| + |
| // Iterate over the delegates and suspend the idle ones. Note: The call to |
| // OnHidden() can trigger calls into RemoveIdleDelegate(), so for iterator |
|
watk
2016/09/27 20:58:30
unrelated, but if you're making another change, "O
DaleCurtis
2016/09/27 21:03:49
Done.
|
| // validity we set |idle_cleanup_running_| to true and defer deletions. |
| + DCHECK(!idle_cleanup_running_); |
| base::AutoReset<bool> scoper(&idle_cleanup_running_, true); |
|
watk
2016/09/27 20:58:30
Might make sense to consolidate the comments and p
DaleCurtis
2016/09/27 21:03:49
Hmm, don't like separating the comments like that,
|
| const base::TimeTicks now = tick_clock_->NowTicks(); |
| for (auto& idle_delegate_entry : idle_delegate_map_) { |