Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1169)

Unified Diff: third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc

Issue 2383473002: [scheduler] Teach scheduler about audio state (Closed)
Patch Set: WebFrames! Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698