diff options
Diffstat (limited to 'cc/scheduler/begin_frame_source.cc')
-rw-r--r-- | cc/scheduler/begin_frame_source.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/cc/scheduler/begin_frame_source.cc b/cc/scheduler/begin_frame_source.cc index 17b4a26..d96ef4e 100644 --- a/cc/scheduler/begin_frame_source.cc +++ b/cc/scheduler/begin_frame_source.cc @@ -53,6 +53,7 @@ void BeginFrameObserverBase::AsValueInto( BeginFrameSourceBase::BeginFrameSourceBase() : observer_(NULL), needs_begin_frames_(false), + paused_(false), inside_as_value_into_(false) { DCHECK(!observer_); DCHECK_EQ(inside_as_value_into_, false); @@ -82,6 +83,8 @@ void BeginFrameSourceBase::AddObserver(BeginFrameObserver* obs) { obs); DCHECK(!observer_); observer_ = obs; + if (observer_) + return observer_->OnBeginFrameSourcePausedChanged(paused_); } void BeginFrameSourceBase::RemoveObserver(BeginFrameObserver* obs) { @@ -105,6 +108,14 @@ void BeginFrameSourceBase::CallOnBeginFrame(const BeginFrameArgs& args) { } } +void BeginFrameSourceBase::SetBeginFrameSourcePaused(bool paused) { + if (paused_ == paused) + return; + paused_ = paused; + if (observer_) + return observer_->OnBeginFrameSourcePausedChanged(paused_); +} + // Tracing support void BeginFrameSourceBase::AsValueInto( base::trace_event::TracedValue* dict) const { @@ -381,6 +392,10 @@ const BeginFrameArgs BeginFrameSourceMultiplexer::LastUsedBeginFrameArgs() return BeginFrameArgs(); } +void BeginFrameSourceMultiplexer::OnBeginFrameSourcePausedChanged(bool paused) { + BeginFrameSourceBase::SetBeginFrameSourcePaused(paused); +} + // BeginFrameSource support void BeginFrameSourceMultiplexer::OnNeedsBeginFramesChange( bool needs_begin_frames) { |