summaryrefslogtreecommitdiffstats
path: root/cc/scheduler/begin_frame_source.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc/scheduler/begin_frame_source.cc')
-rw-r--r--cc/scheduler/begin_frame_source.cc15
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) {