| Index: cc/surfaces/surface_manager_unittest.cc
|
| diff --git a/cc/surfaces/surface_manager_unittest.cc b/cc/surfaces/surface_manager_unittest.cc
|
| index 301ff49354d8614d270d6aca28ae99d5f8c72c8b..e1c6c2b671108532534cb11f7ec31268ec7f5509 100644
|
| --- a/cc/surfaces/surface_manager_unittest.cc
|
| +++ b/cc/surfaces/surface_manager_unittest.cc
|
| @@ -13,10 +13,12 @@ namespace cc {
|
|
|
| class FakeSurfaceFactoryClient : public SurfaceFactoryClient {
|
| public:
|
| - explicit FakeSurfaceFactoryClient(int id_namespace)
|
| - : source_(nullptr), manager_(nullptr), id_namespace_(id_namespace) {}
|
| - FakeSurfaceFactoryClient(int id_namespace, SurfaceManager* manager)
|
| - : source_(nullptr), manager_(nullptr), id_namespace_(id_namespace) {
|
| + explicit FakeSurfaceFactoryClient(const FrameSinkId& frame_sink_id)
|
| + : source_(nullptr), manager_(nullptr), frame_sink_id_(frame_sink_id) {}
|
| +
|
| + FakeSurfaceFactoryClient(const FrameSinkId& frame_sink_id,
|
| + SurfaceManager* manager)
|
| + : source_(nullptr), manager_(nullptr), frame_sink_id_(frame_sink_id) {
|
| DCHECK(manager);
|
| Register(manager);
|
| }
|
| @@ -29,17 +31,17 @@ class FakeSurfaceFactoryClient : public SurfaceFactoryClient {
|
| }
|
|
|
| BeginFrameSource* source() { return source_; }
|
| - uint32_t id_namespace() { return id_namespace_; }
|
| + const FrameSinkId& frame_sink_id() { return frame_sink_id_; }
|
|
|
| void Register(SurfaceManager* manager) {
|
| EXPECT_EQ(manager_, nullptr);
|
| manager_ = manager;
|
| - manager_->RegisterSurfaceFactoryClient(id_namespace_, this);
|
| + manager_->RegisterSurfaceFactoryClient(frame_sink_id_, this);
|
| }
|
|
|
| void Unregister() {
|
| EXPECT_NE(manager_, nullptr);
|
| - manager_->UnregisterSurfaceFactoryClient(id_namespace_);
|
| + manager_->UnregisterSurfaceFactoryClient(frame_sink_id_);
|
| manager_ = nullptr;
|
| }
|
|
|
| @@ -53,7 +55,7 @@ class FakeSurfaceFactoryClient : public SurfaceFactoryClient {
|
| private:
|
| BeginFrameSource* source_;
|
| SurfaceManager* manager_;
|
| - uint32_t id_namespace_;
|
| + FrameSinkId frame_sink_id_;
|
| };
|
|
|
| class SurfaceManagerTest : public testing::Test {
|
| @@ -61,16 +63,16 @@ class SurfaceManagerTest : public testing::Test {
|
| // These tests don't care about namespace registration, so just preregister
|
| // a set of namespaces that tests can use freely without worrying if they're
|
| // valid or not.
|
| - enum { MAX_NAMESPACE = 10 };
|
| + enum { MAX_FRAME_SINK = 10 };
|
|
|
| SurfaceManagerTest() {
|
| - for (size_t i = 0; i < MAX_NAMESPACE; ++i)
|
| - manager_.RegisterSurfaceClientId(i);
|
| + for (size_t i = 0; i < MAX_FRAME_SINK; ++i)
|
| + manager_.RegisterFrameSinkId(FrameSinkId(i, i));
|
| }
|
|
|
| ~SurfaceManagerTest() override {
|
| - for (size_t i = 0; i < MAX_NAMESPACE; ++i)
|
| - manager_.InvalidateSurfaceClientId(i);
|
| + for (size_t i = 0; i < MAX_FRAME_SINK; ++i)
|
| + manager_.InvalidateFrameSinkId(FrameSinkId(i, i));
|
| }
|
|
|
| protected:
|
| @@ -78,8 +80,8 @@ class SurfaceManagerTest : public testing::Test {
|
| };
|
|
|
| TEST_F(SurfaceManagerTest, SingleClients) {
|
| - FakeSurfaceFactoryClient client(1);
|
| - FakeSurfaceFactoryClient other_client(2);
|
| + FakeSurfaceFactoryClient client(FrameSinkId(1, 1));
|
| + FakeSurfaceFactoryClient other_client(FrameSinkId(2, 2));
|
| StubBeginFrameSource source;
|
|
|
| EXPECT_EQ(client.source(), nullptr);
|
| @@ -90,7 +92,7 @@ TEST_F(SurfaceManagerTest, SingleClients) {
|
| EXPECT_EQ(other_client.source(), nullptr);
|
|
|
| // Test setting unsetting BFS
|
| - manager_.RegisterBeginFrameSource(&source, client.id_namespace());
|
| + manager_.RegisterBeginFrameSource(&source, client.frame_sink_id());
|
| EXPECT_EQ(client.source(), &source);
|
| EXPECT_EQ(other_client.source(), nullptr);
|
| manager_.UnregisterBeginFrameSource(&source);
|
| @@ -98,7 +100,7 @@ TEST_F(SurfaceManagerTest, SingleClients) {
|
| EXPECT_EQ(other_client.source(), nullptr);
|
|
|
| // Set BFS for other namespace
|
| - manager_.RegisterBeginFrameSource(&source, other_client.id_namespace());
|
| + manager_.RegisterBeginFrameSource(&source, other_client.frame_sink_id());
|
| EXPECT_EQ(other_client.source(), &source);
|
| EXPECT_EQ(client.source(), nullptr);
|
| manager_.UnregisterBeginFrameSource(&source);
|
| @@ -106,7 +108,7 @@ TEST_F(SurfaceManagerTest, SingleClients) {
|
| EXPECT_EQ(other_client.source(), nullptr);
|
|
|
| // Re-set BFS for original
|
| - manager_.RegisterBeginFrameSource(&source, client.id_namespace());
|
| + manager_.RegisterBeginFrameSource(&source, client.frame_sink_id());
|
| EXPECT_EQ(client.source(), &source);
|
| manager_.UnregisterBeginFrameSource(&source);
|
| EXPECT_EQ(client.source(), nullptr);
|
| @@ -118,33 +120,33 @@ TEST_F(SurfaceManagerTest, MultipleDisplays) {
|
|
|
| // root1 -> A -> B
|
| // root2 -> C
|
| - FakeSurfaceFactoryClient root1(1, &manager_);
|
| - FakeSurfaceFactoryClient root2(2, &manager_);
|
| - FakeSurfaceFactoryClient client_a(3, &manager_);
|
| - FakeSurfaceFactoryClient client_b(4, &manager_);
|
| - FakeSurfaceFactoryClient client_c(5, &manager_);
|
| -
|
| - manager_.RegisterBeginFrameSource(&root1_source, root1.id_namespace());
|
| - manager_.RegisterBeginFrameSource(&root2_source, root2.id_namespace());
|
| + FakeSurfaceFactoryClient root1(FrameSinkId(1, 1), &manager_);
|
| + FakeSurfaceFactoryClient root2(FrameSinkId(2, 2), &manager_);
|
| + FakeSurfaceFactoryClient client_a(FrameSinkId(3, 3), &manager_);
|
| + FakeSurfaceFactoryClient client_b(FrameSinkId(4, 4), &manager_);
|
| + FakeSurfaceFactoryClient client_c(FrameSinkId(5, 5), &manager_);
|
| +
|
| + manager_.RegisterBeginFrameSource(&root1_source, root1.frame_sink_id());
|
| + manager_.RegisterBeginFrameSource(&root2_source, root2.frame_sink_id());
|
| EXPECT_EQ(root1.source(), &root1_source);
|
| EXPECT_EQ(root2.source(), &root2_source);
|
|
|
| // Set up initial hierarchy.
|
| - manager_.RegisterSurfaceNamespaceHierarchy(root1.id_namespace(),
|
| - client_a.id_namespace());
|
| + manager_.RegisterFrameSinkHierarchy(root1.frame_sink_id(),
|
| + client_a.frame_sink_id());
|
| EXPECT_EQ(client_a.source(), root1.source());
|
| - manager_.RegisterSurfaceNamespaceHierarchy(client_a.id_namespace(),
|
| - client_b.id_namespace());
|
| + manager_.RegisterFrameSinkHierarchy(client_a.frame_sink_id(),
|
| + client_b.frame_sink_id());
|
| EXPECT_EQ(client_b.source(), root1.source());
|
| - manager_.RegisterSurfaceNamespaceHierarchy(root2.id_namespace(),
|
| - client_c.id_namespace());
|
| + manager_.RegisterFrameSinkHierarchy(root2.frame_sink_id(),
|
| + client_c.frame_sink_id());
|
| EXPECT_EQ(client_c.source(), root2.source());
|
|
|
| // Attach A into root2's subtree, like a window moving across displays.
|
| // root1 -> A -> B
|
| // root2 -> C -> A -> B
|
| - manager_.RegisterSurfaceNamespaceHierarchy(client_c.id_namespace(),
|
| - client_a.id_namespace());
|
| + manager_.RegisterFrameSinkHierarchy(client_c.frame_sink_id(),
|
| + client_a.frame_sink_id());
|
| // With the heuristic of just keeping existing BFS in the face of multiple,
|
| // no client sources should change.
|
| EXPECT_EQ(client_a.source(), root1.source());
|
| @@ -152,8 +154,8 @@ TEST_F(SurfaceManagerTest, MultipleDisplays) {
|
| EXPECT_EQ(client_c.source(), root2.source());
|
|
|
| // Detach A from root1. A and B should now be updated to root2.
|
| - manager_.UnregisterSurfaceNamespaceHierarchy(root1.id_namespace(),
|
| - client_a.id_namespace());
|
| + manager_.UnregisterFrameSinkHierarchy(root1.frame_sink_id(),
|
| + client_a.frame_sink_id());
|
| EXPECT_EQ(client_a.source(), root2.source());
|
| EXPECT_EQ(client_b.source(), root2.source());
|
| EXPECT_EQ(client_c.source(), root2.source());
|
| @@ -171,12 +173,12 @@ TEST_F(SurfaceManagerTest, MultipleDisplays) {
|
| EXPECT_EQ(root2.source(), nullptr);
|
|
|
| // Cleanup hierarchy.
|
| - manager_.UnregisterSurfaceNamespaceHierarchy(root2.id_namespace(),
|
| - client_c.id_namespace());
|
| - manager_.UnregisterSurfaceNamespaceHierarchy(client_c.id_namespace(),
|
| - client_a.id_namespace());
|
| - manager_.UnregisterSurfaceNamespaceHierarchy(client_a.id_namespace(),
|
| - client_b.id_namespace());
|
| + manager_.UnregisterFrameSinkHierarchy(root2.frame_sink_id(),
|
| + client_c.frame_sink_id());
|
| + manager_.UnregisterFrameSinkHierarchy(client_c.frame_sink_id(),
|
| + client_a.frame_sink_id());
|
| + manager_.UnregisterFrameSinkHierarchy(client_a.frame_sink_id(),
|
| + client_b.frame_sink_id());
|
| }
|
|
|
| // In practice, registering and unregistering both parent/child relationships
|
| @@ -188,9 +190,9 @@ TEST_F(SurfaceManagerTest, MultipleDisplays) {
|
| class SurfaceManagerOrderingTest : public SurfaceManagerTest {
|
| public:
|
| SurfaceManagerOrderingTest()
|
| - : client_a_(1),
|
| - client_b_(2),
|
| - client_c_(3),
|
| + : client_a_(FrameSinkId(1, 1)),
|
| + client_b_(FrameSinkId(2, 2)),
|
| + client_c_(FrameSinkId(3, 3)),
|
| hierarchy_registered_(false),
|
| clients_registered_(false),
|
| bfs_registered_(false) {
|
| @@ -207,19 +209,19 @@ class SurfaceManagerOrderingTest : public SurfaceManagerTest {
|
| void RegisterHierarchy() {
|
| DCHECK(!hierarchy_registered_);
|
| hierarchy_registered_ = true;
|
| - manager_.RegisterSurfaceNamespaceHierarchy(client_a_.id_namespace(),
|
| - client_b_.id_namespace());
|
| - manager_.RegisterSurfaceNamespaceHierarchy(client_b_.id_namespace(),
|
| - client_c_.id_namespace());
|
| + manager_.RegisterFrameSinkHierarchy(client_a_.frame_sink_id(),
|
| + client_b_.frame_sink_id());
|
| + manager_.RegisterFrameSinkHierarchy(client_b_.frame_sink_id(),
|
| + client_c_.frame_sink_id());
|
| AssertCorrectBFSState();
|
| }
|
| void UnregisterHierarchy() {
|
| DCHECK(hierarchy_registered_);
|
| hierarchy_registered_ = false;
|
| - manager_.UnregisterSurfaceNamespaceHierarchy(client_a_.id_namespace(),
|
| - client_b_.id_namespace());
|
| - manager_.UnregisterSurfaceNamespaceHierarchy(client_b_.id_namespace(),
|
| - client_c_.id_namespace());
|
| + manager_.UnregisterFrameSinkHierarchy(client_a_.frame_sink_id(),
|
| + client_b_.frame_sink_id());
|
| + manager_.UnregisterFrameSinkHierarchy(client_b_.frame_sink_id(),
|
| + client_c_.frame_sink_id());
|
| AssertCorrectBFSState();
|
| }
|
|
|
| @@ -244,7 +246,7 @@ class SurfaceManagerOrderingTest : public SurfaceManagerTest {
|
| void RegisterBFS() {
|
| DCHECK(!bfs_registered_);
|
| bfs_registered_ = true;
|
| - manager_.RegisterBeginFrameSource(&source_, client_a_.id_namespace());
|
| + manager_.RegisterBeginFrameSource(&source_, client_a_.frame_sink_id());
|
| AssertCorrectBFSState();
|
| }
|
| void UnregisterBFS() {
|
|
|