| Index: cc/scheduler/scheduler.cc
|
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
|
| index 5b15a5a60f990de3f088e76bf89f5d903f41cd6b..1c4a8ab43c7393db4986f38198d9dfc5575019c8 100644
|
| --- a/cc/scheduler/scheduler.cc
|
| +++ b/cc/scheduler/scheduler.cc
|
| @@ -5,6 +5,7 @@
|
| #include "cc/scheduler/scheduler.h"
|
|
|
| #include <algorithm>
|
| +
|
| #include "base/auto_reset.h"
|
| #include "base/debug/trace_event.h"
|
| #include "base/debug/trace_event_argument.h"
|
| @@ -32,8 +33,10 @@ BeginFrameSource* SchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource(
|
| TRACE_EVENT1("cc",
|
| "Scheduler::Scheduler()",
|
| "PrimaryFrameSource",
|
| - "SchedulerClient");
|
| - return scheduler->client_->ExternalBeginFrameSource();
|
| + "ExternalBeginFrameSource");
|
| + DCHECK(scheduler->external_begin_frame_source_internal_.get());
|
| + scheduler->external_begin_frame_source_internal_->SetClientReady();
|
| + return scheduler->external_begin_frame_source_internal_.get();
|
| } else {
|
| TRACE_EVENT1("cc",
|
| "Scheduler::Scheduler()",
|
| @@ -73,12 +76,14 @@ Scheduler::Scheduler(
|
| const SchedulerSettings& scheduler_settings,
|
| int layer_tree_host_id,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| + scoped_refptr<ExternalBeginFrameSource> external_begin_frame_source,
|
| SchedulerFrameSourcesConstructor* frame_sources_constructor)
|
| : frame_source_(),
|
| primary_frame_source_(NULL),
|
| background_frame_source_(NULL),
|
| primary_frame_source_internal_(),
|
| background_frame_source_internal_(),
|
| + external_begin_frame_source_internal_(external_begin_frame_source),
|
| vsync_observer_(NULL),
|
| settings_(scheduler_settings),
|
| client_(client),
|
| @@ -120,6 +125,8 @@ Scheduler::Scheduler(
|
| }
|
|
|
| Scheduler::~Scheduler() {
|
| + if (frame_source_->NeedsBeginFrames())
|
| + frame_source_->SetNeedsBeginFrames(false);
|
| }
|
|
|
| base::TimeTicks Scheduler::Now() const {
|
|
|