Chromium Code Reviews| Index: cc/scheduler/scheduler_unittest.cc |
| diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc |
| index 751c9649e497a230e95fa71102d3197b02f0b5ae..9c81df898d920d740d733cb6d7d8b5cb106313d6 100644 |
| --- a/cc/scheduler/scheduler_unittest.cc |
| +++ b/cc/scheduler/scheduler_unittest.cc |
| @@ -17,6 +17,7 @@ |
| #include "base/time/time.h" |
| #include "base/trace_event/trace_event.h" |
| #include "cc/test/begin_frame_args_test.h" |
| +#include "cc/test/fake_external_begin_frame_source.h" |
| #include "cc/test/ordered_simple_task_runner.h" |
| #include "cc/test/scheduler_test_common.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| @@ -199,31 +200,22 @@ class FakeSchedulerClient : public SchedulerClient { |
| TestScheduler* scheduler_; |
| }; |
| -class FakeExternalBeginFrameSource : public BeginFrameSourceBase { |
| +class BeginSourceToSchedulerClientProxy |
|
enne (OOO)
2016/06/15 19:46:56
class BeginSourceToSchedulerClientProxy : public F
danakj
2016/06/15 20:35:56
OK I made FakeSchedulerClient also be a FakeExtern
|
| + : public FakeExternalBeginFrameSource::Client { |
| public: |
| - explicit FakeExternalBeginFrameSource(FakeSchedulerClient* client) |
| + explicit BeginSourceToSchedulerClientProxy(FakeSchedulerClient* client) |
| : client_(client) {} |
| - ~FakeExternalBeginFrameSource() override {} |
| - void AddObserver(BeginFrameObserver* obs) override { |
| + // FakeExternalBeginFrameSource::Client implementation. |
| + void OnAddObserver(BeginFrameObserver* obs) override { |
| client_->PushAction("AddObserver(this)"); |
| - BeginFrameSourceBase::AddObserver(obs); |
| } |
| - |
| - void RemoveObserver(BeginFrameObserver* obs) override { |
| + void OnRemoveObserver(BeginFrameObserver* obs) override { |
| client_->PushAction("RemoveObserver(this)"); |
| - BeginFrameSourceBase::RemoveObserver(obs); |
| - } |
| - |
| - // TODO(sunnyps): Use using CallOnBeginFrame, SetBeginFrameSourcePaused. |
| - void TestOnBeginFrame(const BeginFrameArgs& args) { |
| - return CallOnBeginFrame(args); |
| } |
| - void SetPaused(bool paused) { SetBeginFrameSourcePaused(paused); } |
| - |
| private: |
| - FakeSchedulerClient* client_; |
| + FakeSchedulerClient* const client_; |
| }; |
| class SchedulerTest : public testing::Test { |
| @@ -245,12 +237,15 @@ class SchedulerTest : public testing::Test { |
| protected: |
| TestScheduler* CreateScheduler() { |
| BeginFrameSource* frame_source; |
| - unthrottled_frame_source_.reset( |
| - new TestBackToBackBeginFrameSource(now_src_.get(), task_runner_.get())); |
| + unthrottled_frame_source_.reset(new BackToBackBeginFrameSource( |
| + base::MakeUnique<TestDelayBasedTimeSource>(now_src_.get(), |
| + task_runner_.get()))); |
| fake_external_begin_frame_source_.reset( |
| - new FakeExternalBeginFrameSource(client_.get())); |
| - synthetic_frame_source_.reset(new TestSyntheticBeginFrameSource( |
| - now_src_.get(), task_runner_.get(), BeginFrameArgs::DefaultInterval())); |
| + new FakeExternalBeginFrameSource(0.f, false)); |
| + fake_external_begin_frame_source_->SetClient(client_proxy_.get()); |
| + synthetic_frame_source_.reset(new DelayBasedBeginFrameSource( |
| + base::MakeUnique<TestDelayBasedTimeSource>(now_src_.get(), |
| + task_runner_.get()))); |
| if (!scheduler_settings_.throttle_frame_production) { |
| frame_source = unthrottled_frame_source_.get(); |
| } else if (scheduler_settings_.use_external_begin_frame_source) { |
| @@ -289,6 +284,7 @@ class SchedulerTest : public testing::Test { |
| void SetUpScheduler(std::unique_ptr<FakeSchedulerClient> client, |
| bool initSurface) { |
| client_ = std::move(client); |
| + client_proxy_.reset(new BeginSourceToSchedulerClientProxy(client_.get())); |
| if (initSurface) |
| CreateSchedulerAndInitSurface(); |
| else |
| @@ -429,9 +425,10 @@ class SchedulerTest : public testing::Test { |
| scoped_refptr<OrderedSimpleTaskRunner> task_runner_; |
| std::unique_ptr<FakeExternalBeginFrameSource> |
| fake_external_begin_frame_source_; |
| - std::unique_ptr<TestSyntheticBeginFrameSource> synthetic_frame_source_; |
| - std::unique_ptr<TestBackToBackBeginFrameSource> unthrottled_frame_source_; |
| + std::unique_ptr<SyntheticBeginFrameSource> synthetic_frame_source_; |
| + std::unique_ptr<SyntheticBeginFrameSource> unthrottled_frame_source_; |
| SchedulerSettings scheduler_settings_; |
| + std::unique_ptr<BeginSourceToSchedulerClientProxy> client_proxy_; |
| std::unique_ptr<FakeSchedulerClient> client_; |
| std::unique_ptr<TestScheduler> scheduler_; |
| FakeCompositorTimingHistory* fake_compositor_timing_history_; |
| @@ -2769,7 +2766,7 @@ TEST_F(SchedulerTest, DidLoseOutputSurfaceDuringBeginRetroFrameRunning) { |
| EXPECT_NO_ACTION(client_); |
| } |
| -TEST_F(SchedulerTest, DidLoseOutputSurfaceWithSyntheticBeginFrameSource) { |
| +TEST_F(SchedulerTest, DidLoseOutputSurfaceWithDelayBasedBeginFrameSource) { |
| SetUpScheduler(true); |
| // SetNeedsBeginMainFrame should begin the frame on the next BeginImplFrame. |