Index: ui/compositor/compositor.cc |
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
index 2993d8a6fd21dffc40465c2ed46af07f0fba6a30..45d40c78f3b8f9c5bb1e9258735d4b73cdc143c5 100644 |
--- a/ui/compositor/compositor.cc |
+++ b/ui/compositor/compositor.cc |
@@ -446,10 +446,20 @@ bool Compositor::HasObserver(CompositorObserver* observer) { |
} |
void Compositor::OnUpdateVSyncParameters(base::TimeTicks timebase, |
- base::TimeDelta interval) { |
- FOR_EACH_OBSERVER(CompositorObserver, |
- observer_list_, |
- OnUpdateVSyncParameters(this, timebase, interval)); |
+ base::TimeDelta interval, |
+ bool interval_is_authoritative) { |
+ if (interval_is_authoritative) { |
+ authoritative_vsync_interval_ = interval; |
+ } else { |
+ if (authoritative_vsync_interval_ != base::TimeDelta()) |
+ interval = authoritative_vsync_interval_; |
+ } |
+ |
+ if (!timebase.is_null()) { |
+ FOR_EACH_OBSERVER(CompositorObserver, |
+ observer_list_, |
+ OnUpdateVSyncParameters(this, timebase, interval)); |
+ } |
} |
void Compositor::Layout() { |