| Index: third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc
|
| index 0dff1a2d6b38baccd3a8f9aa57ad7765673fa251..03d872381339a16661f784cefdc4ece9e00431b3 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc
|
| @@ -27,7 +27,8 @@ WebViewSchedulerImpl::WebViewSchedulerImpl(
|
| disable_background_timer_throttling_(disable_background_timer_throttling),
|
| allow_virtual_time_to_advance_(true),
|
| have_seen_loading_task_(false),
|
| - virtual_time_(false) {
|
| + virtual_time_(false),
|
| + is_audio_playing_(false) {
|
| renderer_scheduler->AddWebViewScheduler(this);
|
| }
|
|
|
| @@ -141,6 +142,18 @@ void WebViewSchedulerImpl::setVirtualTimePolicy(VirtualTimePolicy policy) {
|
| }
|
| }
|
|
|
| +void WebViewSchedulerImpl::OnAudioStateChangedInFrame() {
|
| + bool is_audio_playing = false;
|
| + for (WebFrameSchedulerImpl* frame_scheduler : frame_schedulers_) {
|
| + is_audio_playing = is_audio_playing || frame_scheduler->IsAudioPlaying();
|
| + }
|
| +
|
| + if (is_audio_playing_ != is_audio_playing) {
|
| + is_audio_playing_ = is_audio_playing;
|
| + renderer_scheduler_->OnAudioStateChanged();
|
| + }
|
| +}
|
| +
|
| void WebViewSchedulerImpl::ApplyVirtualTimePolicy() {
|
| if (virtual_time_policy_ != VirtualTimePolicy::DETERMINISTIC_LOADING) {
|
| return;
|
| @@ -154,5 +167,9 @@ void WebViewSchedulerImpl::ApplyVirtualTimePolicy() {
|
| have_seen_loading_task_);
|
| }
|
|
|
| +bool WebViewSchedulerImpl::IsAudioPlaying() const {
|
| + return is_audio_playing_;
|
| +}
|
| +
|
| } // namespace scheduler
|
| } // namespace blink
|
|
|