| Index: cc/surfaces/display_unittest.cc
|
| diff --git a/cc/surfaces/display_unittest.cc b/cc/surfaces/display_unittest.cc
|
| index 4a2de664fdbc36ffed6b4fc839c0c4e21e01ca05..312c3a4a9da65012ed9833c6baa246ab547be933 100644
|
| --- a/cc/surfaces/display_unittest.cc
|
| +++ b/cc/surfaces/display_unittest.cc
|
| @@ -57,8 +57,11 @@ class DisplayTest : public testing::Test {
|
| public:
|
| DisplayTest()
|
| : factory_(&manager_, &surface_factory_client_),
|
| + id_allocator_(kArbitrarySurfaceNamespace),
|
| software_output_device_(nullptr),
|
| - task_runner_(new base::NullTaskRunner) {}
|
| + task_runner_(new base::NullTaskRunner) {
|
| + id_allocator_.RegisterSurfaceIdNamespace(&manager_);
|
| + }
|
|
|
| protected:
|
| void SetUpContext(std::unique_ptr<TestWebGraphicsContext3D> context) {
|
| @@ -87,13 +90,15 @@ class DisplayTest : public testing::Test {
|
| SurfaceFactory::DrawCallback());
|
| }
|
|
|
| + enum { kArbitrarySurfaceNamespace = 3 };
|
| +
|
| SurfaceManager manager_;
|
| FakeSurfaceFactoryClient surface_factory_client_;
|
| SurfaceFactory factory_;
|
| + SurfaceIdAllocator id_allocator_;
|
| TestSoftwareOutputDevice* software_output_device_;
|
| std::unique_ptr<FakeOutputSurface> output_surface_;
|
| FakeOutputSurface* output_surface_ptr_;
|
| - FakeBeginFrameSource fake_begin_frame_source_;
|
| scoped_refptr<base::NullTaskRunner> task_runner_;
|
| std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
|
| };
|
| @@ -103,8 +108,6 @@ class TestDisplayClient : public DisplayClient {
|
| TestDisplayClient() {}
|
| ~TestDisplayClient() override {}
|
|
|
| - void CommitVSyncParameters(base::TimeTicks timebase,
|
| - base::TimeDelta interval) override {}
|
| void OutputSurfaceLost() override {}
|
| void SetMemoryPolicy(const ManagedMemoryPolicy& policy) override {}
|
| };
|
| @@ -113,14 +116,12 @@ class TestDisplayScheduler : public DisplayScheduler {
|
| public:
|
| TestDisplayScheduler(DisplaySchedulerClient* client,
|
| BeginFrameSource* begin_frame_source,
|
| - base::NullTaskRunner* task_runner)
|
| + base::SingleThreadTaskRunner* task_runner)
|
| : DisplayScheduler(client, begin_frame_source, task_runner, 1),
|
| damaged(false),
|
| display_resized_(false),
|
| has_new_root_surface(false),
|
| - swapped(false) {
|
| - begin_frame_source_for_children_.reset(new FakeBeginFrameSource);
|
| - }
|
| + swapped(false) {}
|
|
|
| ~TestDisplayScheduler() override {}
|
|
|
| @@ -147,6 +148,35 @@ class TestDisplayScheduler : public DisplayScheduler {
|
| bool display_resized_;
|
| bool has_new_root_surface;
|
| bool swapped;
|
| +
|
| + private:
|
| + RendererSettings settings_;
|
| +};
|
| +
|
| +class TestDisplay : public Display {
|
| + public:
|
| + TestDisplay(DisplayClient* client,
|
| + SurfaceManager* manager,
|
| + SharedBitmapManager* bitmap_manager,
|
| + gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
|
| + const RendererSettings& settings,
|
| + uint32_t compositor_surface_namespace)
|
| + : Display(client,
|
| + manager,
|
| + bitmap_manager,
|
| + gpu_memory_buffer_manager,
|
| + settings,
|
| + compositor_surface_namespace) {}
|
| +
|
| + TestDisplayScheduler& scheduler() {
|
| + return *static_cast<TestDisplayScheduler*>(scheduler_.get());
|
| + }
|
| +
|
| + protected:
|
| + void CreateScheduler(base::SingleThreadTaskRunner* task_runner) override {
|
| + scheduler_.reset(
|
| + new TestDisplayScheduler(this, vsync_begin_frame_source_, task_runner));
|
| + }
|
| };
|
|
|
| void CopyCallback(bool* called, std::unique_ptr<CopyOutputResult> result) {
|
| @@ -160,14 +190,12 @@ TEST_F(DisplayTest, DisplayDamaged) {
|
| RendererSettings settings;
|
| settings.partial_swap_enabled = true;
|
| settings.finish_rendering_on_resize = true;
|
| - Display display(&client, &manager_, shared_bitmap_manager_.get(), nullptr,
|
| - settings);
|
| + TestDisplay display(&client, &manager_, shared_bitmap_manager_.get(), nullptr,
|
| + settings, id_allocator_.id_namespace());
|
| + display.Initialize(std::move(output_surface_), task_runner_.get());
|
| + TestDisplayScheduler& scheduler = display.scheduler();
|
|
|
| - TestDisplayScheduler scheduler(&display, &fake_begin_frame_source_,
|
| - task_runner_.get());
|
| - display.Initialize(std::move(output_surface_), &scheduler);
|
| -
|
| - SurfaceId surface_id(7u);
|
| + SurfaceId surface_id(id_allocator_.GenerateId());
|
| EXPECT_FALSE(scheduler.damaged);
|
| EXPECT_FALSE(scheduler.has_new_root_surface);
|
| display.SetSurfaceId(surface_id, 1.f);
|
| @@ -422,18 +450,17 @@ TEST_F(DisplayTest, Finish) {
|
| SetUpContext(std::move(context));
|
|
|
| EXPECT_CALL(*context_ptr, shallowFinishCHROMIUM()).Times(0);
|
| +
|
| + SurfaceId surface_id(id_allocator_.GenerateId());
|
| +
|
| TestDisplayClient client;
|
| RendererSettings settings;
|
| settings.partial_swap_enabled = true;
|
| settings.finish_rendering_on_resize = true;
|
| - Display display(&client, &manager_, shared_bitmap_manager_.get(), nullptr,
|
| - settings);
|
| -
|
| - TestDisplayScheduler scheduler(&display, &fake_begin_frame_source_,
|
| - task_runner_.get());
|
| - display.Initialize(std::move(output_surface_), &scheduler);
|
| + TestDisplay display(&client, &manager_, shared_bitmap_manager_.get(), nullptr,
|
| + settings, surface_id.id_namespace());
|
| + display.Initialize(std::move(output_surface_), task_runner_.get());
|
|
|
| - SurfaceId surface_id(7u);
|
| display.SetSurfaceId(surface_id, 1.f);
|
|
|
| display.Resize(gfx::Size(100, 100));
|
|
|