| Index: cc/test/scheduler_test_common.cc
|
| diff --git a/cc/test/scheduler_test_common.cc b/cc/test/scheduler_test_common.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f25d6eb142452e8daf05ba9af45efe72d3bdd588
|
| --- /dev/null
|
| +++ b/cc/test/scheduler_test_common.cc
|
| @@ -0,0 +1,152 @@
|
| +// Copyright 2012 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "cc/test/scheduler_test_common.h"
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/logging.h"
|
| +
|
| +namespace cc {
|
| +
|
| +void FakeTimeSourceClient::OnTimerTick() {
|
| + tick_called_ = true;
|
| +}
|
| +
|
| +base::TimeTicks FakeDelayBasedTimeSource::Now() const { return now_; }
|
| +
|
| +TestDelayBasedTimeSource::TestDelayBasedTimeSource(
|
| + scoped_refptr<TestNowSource> now_src,
|
| + base::TimeDelta interval,
|
| + OrderedSimpleTaskRunner* task_runner)
|
| + : DelayBasedTimeSource(interval, task_runner), now_src_(now_src) {
|
| +}
|
| +
|
| +base::TimeTicks TestDelayBasedTimeSource::Now() const {
|
| + return now_src_->Now();
|
| +}
|
| +
|
| +std::string TestDelayBasedTimeSource::TypeString() const {
|
| + return "TestDelayBasedTimeSource";
|
| +}
|
| +
|
| +TestDelayBasedTimeSource::~TestDelayBasedTimeSource() {
|
| +}
|
| +
|
| +void FakeBeginFrameSource::DidFinishFrame(size_t remaining_frames) {
|
| + remaining_frames_ = remaining_frames;
|
| +}
|
| +void FakeBeginFrameSource::AsValueInto(
|
| + base::trace_event::TracedValue* dict) const {
|
| + dict->SetString("type", "FakeBeginFrameSource");
|
| + BeginFrameSourceMixIn::AsValueInto(dict);
|
| +}
|
| +
|
| +TestBackToBackBeginFrameSource::TestBackToBackBeginFrameSource(
|
| + scoped_refptr<TestNowSource> now_src,
|
| + base::SingleThreadTaskRunner* task_runner)
|
| + : BackToBackBeginFrameSource(task_runner), now_src_(now_src) {
|
| +}
|
| +
|
| +TestBackToBackBeginFrameSource::~TestBackToBackBeginFrameSource() {
|
| +}
|
| +
|
| +base::TimeTicks TestBackToBackBeginFrameSource::Now() {
|
| + return now_src_->Now();
|
| +}
|
| +
|
| +TestSyntheticBeginFrameSource::TestSyntheticBeginFrameSource(
|
| + scoped_refptr<DelayBasedTimeSource> time_source)
|
| + : SyntheticBeginFrameSource(time_source) {
|
| +}
|
| +
|
| +TestSyntheticBeginFrameSource::~TestSyntheticBeginFrameSource() {
|
| +}
|
| +
|
| +TestSchedulerFrameSourcesConstructor::TestSchedulerFrameSourcesConstructor(
|
| + OrderedSimpleTaskRunner* test_task_runner,
|
| + TestNowSource* now_src)
|
| + : test_task_runner_(test_task_runner), now_src_(now_src) {
|
| +}
|
| +TestSchedulerFrameSourcesConstructor::~TestSchedulerFrameSourcesConstructor() {
|
| +}
|
| +
|
| +BeginFrameSource*
|
| +TestSchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource(
|
| + Scheduler* scheduler) {
|
| + if (scheduler->settings_.use_external_begin_frame_source) {
|
| + return SchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource(
|
| + scheduler);
|
| + } else {
|
| + TRACE_EVENT1(
|
| + "cc",
|
| + "TestSchedulerFrameSourcesConstructor::ConstructPrimaryFrameSource",
|
| + "source",
|
| + "TestSyntheticBeginFrameSource");
|
| + scoped_ptr<TestSyntheticBeginFrameSource> synthetic_source =
|
| + TestSyntheticBeginFrameSource::Create(
|
| + now_src_, test_task_runner_, BeginFrameArgs::DefaultInterval());
|
| +
|
| + DCHECK(!scheduler->vsync_observer_);
|
| + scheduler->vsync_observer_ = synthetic_source.get();
|
| +
|
| + DCHECK(!scheduler->primary_frame_source_internal_);
|
| + scheduler->primary_frame_source_internal_ = synthetic_source.Pass();
|
| + return scheduler->primary_frame_source_internal_.get();
|
| + }
|
| +}
|
| +
|
| +BeginFrameSource*
|
| +TestSchedulerFrameSourcesConstructor::ConstructBackgroundFrameSource(
|
| + Scheduler* scheduler) {
|
| + TRACE_EVENT1(
|
| + "cc",
|
| + "TestSchedulerFrameSourcesConstructor::ConstructBackgroundFrameSource",
|
| + "source",
|
| + "TestSyntheticBeginFrameSource");
|
| + DCHECK(!(scheduler->background_frame_source_internal_));
|
| + scheduler->background_frame_source_internal_ =
|
| + TestSyntheticBeginFrameSource::Create(
|
| + now_src_, test_task_runner_, base::TimeDelta::FromSeconds(1));
|
| + return scheduler->background_frame_source_internal_.get();
|
| +}
|
| +
|
| +BeginFrameSource*
|
| +TestSchedulerFrameSourcesConstructor::ConstructUnthrottledFrameSource(
|
| + Scheduler* scheduler) {
|
| + TRACE_EVENT1(
|
| + "cc",
|
| + "TestSchedulerFrameSourcesConstructor::ConstructUnthrottledFrameSource",
|
| + "source", "TestBackToBackBeginFrameSource");
|
| + DCHECK(!scheduler->unthrottled_frame_source_internal_);
|
| + scheduler->unthrottled_frame_source_internal_ =
|
| + TestBackToBackBeginFrameSource::Create(now_src_, test_task_runner_);
|
| + return scheduler->unthrottled_frame_source_internal_.get();
|
| +}
|
| +
|
| +TestScheduler::TestScheduler(
|
| + scoped_refptr<TestNowSource> now_src,
|
| + SchedulerClient* client,
|
| + const SchedulerSettings& scheduler_settings,
|
| + int layer_tree_host_id,
|
| + const scoped_refptr<OrderedSimpleTaskRunner>& test_task_runner,
|
| + TestSchedulerFrameSourcesConstructor* frame_sources_constructor,
|
| + scoped_ptr<BeginFrameSource> external_begin_frame_source)
|
| + : Scheduler(client,
|
| + scheduler_settings,
|
| + layer_tree_host_id,
|
| + test_task_runner,
|
| + external_begin_frame_source.Pass(),
|
| + frame_sources_constructor),
|
| + now_src_(now_src) {
|
| +}
|
| +
|
| +base::TimeTicks TestScheduler::Now() const {
|
| + return now_src_->Now();
|
| +}
|
| +
|
| +TestScheduler::~TestScheduler() {
|
| +}
|
| +
|
| +} // namespace cc
|
|
|