| Index: cc/trees/single_thread_proxy.cc
|
| diff --git a/cc/trees/single_thread_proxy.cc b/cc/trees/single_thread_proxy.cc
|
| index 1b57b350ce4c4a4e10275c61d846f21c264b9782..f7fb32cb93519c5a9f009b331f3bf98e2b8825b4 100644
|
| --- a/cc/trees/single_thread_proxy.cc
|
| +++ b/cc/trees/single_thread_proxy.cc
|
| @@ -23,15 +23,19 @@ namespace cc {
|
| scoped_ptr<Proxy> SingleThreadProxy::Create(
|
| LayerTreeHost* layer_tree_host,
|
| LayerTreeHostSingleThreadClient* client,
|
| - scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) {
|
| - return make_scoped_ptr(
|
| - new SingleThreadProxy(layer_tree_host, client, main_task_runner));
|
| + scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
|
| + scoped_refptr<ExternalBeginFrameSource> external_begin_frame_source) {
|
| + return make_scoped_ptr(new SingleThreadProxy(layer_tree_host,
|
| + client,
|
| + main_task_runner,
|
| + external_begin_frame_source));
|
| }
|
|
|
| SingleThreadProxy::SingleThreadProxy(
|
| LayerTreeHost* layer_tree_host,
|
| LayerTreeHostSingleThreadClient* client,
|
| - scoped_refptr<base::SingleThreadTaskRunner> main_task_runner)
|
| + scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
|
| + scoped_refptr<ExternalBeginFrameSource> external_begin_frame_source)
|
| : Proxy(main_task_runner, NULL),
|
| layer_tree_host_(layer_tree_host),
|
| client_(client),
|
| @@ -42,6 +46,7 @@ SingleThreadProxy::SingleThreadProxy(
|
| commit_was_deferred_(false),
|
| commit_requested_(false),
|
| output_surface_creation_requested_(false),
|
| + external_begin_frame_source_(external_begin_frame_source),
|
| weak_factory_(this) {
|
| TRACE_EVENT0("cc", "SingleThreadProxy::SingleThreadProxy");
|
| DCHECK(Proxy::IsMainThread());
|
| @@ -83,12 +88,17 @@ void SingleThreadProxy::SetLayerTreeHostClientReady() {
|
| if (layer_tree_host_->settings().single_thread_proxy_scheduler &&
|
| !scheduler_on_impl_thread_) {
|
| SchedulerSettings scheduler_settings(layer_tree_host_->settings());
|
| - scheduler_on_impl_thread_ = Scheduler::Create(this,
|
| - scheduler_settings,
|
| - layer_tree_host_->id(),
|
| - MainThreadTaskRunner());
|
| + scheduler_on_impl_thread_ =
|
| + Scheduler::Create(this,
|
| + scheduler_settings,
|
| + layer_tree_host_->id(),
|
| + MainThreadTaskRunner(),
|
| + external_begin_frame_source_);
|
| scheduler_on_impl_thread_->SetCanStart();
|
| scheduler_on_impl_thread_->SetVisible(layer_tree_host_impl_->visible());
|
| + // |external_begin_frame_source_| is not used anymore by this.
|
| + // Proxy only delivers |external_begin_frame_source_| to Scheduler.
|
| + external_begin_frame_source_ = nullptr;
|
| }
|
| }
|
|
|
| @@ -612,10 +622,6 @@ bool SingleThreadProxy::MainFrameWillHappenForTesting() {
|
| return false;
|
| }
|
|
|
| -BeginFrameSource* SingleThreadProxy::ExternalBeginFrameSource() {
|
| - return layer_tree_host_impl_.get();
|
| -}
|
| -
|
| void SingleThreadProxy::WillBeginImplFrame(const BeginFrameArgs& args) {
|
| layer_tree_host_impl_->WillBeginImplFrame(args);
|
| }
|
|
|