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 36fb95f9c0855dd395796582acb2fb2a6db685a6..500c89a5ab96c5d9bc8bfdef2f391d834e7d20f3 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 |
@@ -179,6 +179,8 @@ void WebViewSchedulerImpl::EnableVirtualTime() { |
allow_virtual_time_to_advance_); |
renderer_scheduler_->EnableVirtualTime(); |
+ virtual_time_control_task_queue_ = WebTaskRunnerImpl::Create( |
+ renderer_scheduler_->VirtualTimeControlTaskQueue()); |
ApplyVirtualTimePolicyToTimers(); |
} |
@@ -187,6 +189,7 @@ void WebViewSchedulerImpl::DisableVirtualTimeForTesting() { |
return; |
virtual_time_ = false; |
renderer_scheduler_->DisableVirtualTimeForTesting(); |
+ virtual_time_control_task_queue_ = nullptr; |
ApplyVirtualTimePolicyToTimers(); |
} |
@@ -260,6 +263,15 @@ void WebViewSchedulerImpl::SetVirtualTimePolicy(VirtualTimePolicy policy) { |
} |
} |
+void WebViewSchedulerImpl::GrantVirtualTimeBudget( |
+ base::TimeDelta budget, |
+ std::unique_ptr<WTF::Closure> budget_exhausted_callback) { |
+ virtual_time_budget_expired_task_handle_ = |
+ virtual_time_control_task_queue_->PostDelayedCancellableTask( |
+ BLINK_FROM_HERE, std::move(budget_exhausted_callback), |
+ budget.InMilliseconds()); |
+} |
+ |
void WebViewSchedulerImpl::AudioStateChanged(bool is_audio_playing) { |
is_audio_playing_ = is_audio_playing; |
renderer_scheduler_->OnAudioStateChanged(); |