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..bba2063de41328bffea931211893b0df02f07aeb 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 |
@@ -100,6 +100,8 @@ WebViewSchedulerImpl::WebViewSchedulerImpl( |
: intervention_reporter_(intervention_reporter), |
renderer_scheduler_(renderer_scheduler), |
virtual_time_policy_(VirtualTimePolicy::ADVANCE), |
+ control_task_runner_( |
+ WebTaskRunnerImpl::Create(renderer_scheduler->ControlTaskQueue())), |
background_parser_count_(0), |
page_visible_(true), |
should_throttle_frames_(false), |
@@ -260,6 +262,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_ = |
+ control_task_runner_->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(); |