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

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

Issue 2841463003: scheduler: Make virtual time expiration deterministic (Closed)
Patch Set: Rebased Created 3 years, 8 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 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();

Powered by Google App Engine
This is Rietveld 408576698