Index: cc/trees/tree_synchronizer_unittest.cc |
diff --git a/cc/trees/tree_synchronizer_unittest.cc b/cc/trees/tree_synchronizer_unittest.cc |
index 4e2a8eaf9e9a867f5c20bba3149a7c8336215a8a..1ec104d0e86d1d85a802b3069430d6e1b3d47adb 100644 |
--- a/cc/trees/tree_synchronizer_unittest.cc |
+++ b/cc/trees/tree_synchronizer_unittest.cc |
@@ -32,6 +32,13 @@ |
namespace cc { |
namespace { |
+bool AreScrollOffsetsEqual(const SyncedScrollOffset* a, |
+ const SyncedScrollOffset* b) { |
+ return a->ActiveBase() == b->ActiveBase() && |
+ a->PendingBase() == b->PendingBase() && a->Delta() == b->Delta() && |
+ a->PendingDelta().get() == b->PendingDelta().get(); |
+} |
+ |
class MockLayerImpl : public LayerImpl { |
public: |
static std::unique_ptr<MockLayerImpl> Create(LayerTreeImpl* tree_impl, |
@@ -134,24 +141,6 @@ class TreeSynchronizerTest : public testing::Test { |
&task_graph_runner_, |
animation_host_.get())) {} |
- bool is_equal(ScrollTree::ScrollOffsetMap map, |
- ScrollTree::ScrollOffsetMap other) { |
- if (map.size() != other.size()) |
- return false; |
- for (auto& map_entry : map) { |
- if (other.find(map_entry.first) == other.end()) |
- return false; |
- SyncedScrollOffset& from_map = *map_entry.second.get(); |
- SyncedScrollOffset& from_other = *other[map_entry.first].get(); |
- if (from_map.PendingBase() != from_other.PendingBase() || |
- from_map.ActiveBase() != from_other.ActiveBase() || |
- from_map.Delta() != from_other.Delta() || |
- from_map.PendingDelta().get() != from_other.PendingDelta().get()) |
- return false; |
- } |
- return true; |
- } |
- |
FakeLayerTreeHostClient client_; |
StubLayerTreeHostSingleThreadClient single_thread_client_; |
TestTaskGraphRunner task_graph_runner_; |
@@ -568,19 +557,26 @@ TEST_F(TreeSynchronizerTest, SynchronizeScrollTreeScrollOffsetMap) { |
// After the initial commit, scroll_offset_map in scroll_tree is expected to |
// have one entry for scroll_layer and one entry for transient_scroll_layer, |
// the pending base and active base must be the same at this stage. |
- ScrollTree::ScrollOffsetMap scroll_offset_map; |
- scroll_offset_map[scroll_layer->id()] = new SyncedScrollOffset; |
- scroll_offset_map[transient_scroll_layer->id()] = new SyncedScrollOffset; |
- scroll_offset_map[scroll_layer->id()]->PushFromMainThread( |
- scroll_layer->scroll_offset()); |
- scroll_offset_map[scroll_layer->id()]->PushPendingToActive(); |
- scroll_offset_map[transient_scroll_layer->id()]->PushFromMainThread( |
+ scoped_refptr<SyncedScrollOffset> scroll_layer_offset = |
+ new SyncedScrollOffset; |
+ scroll_layer_offset->PushFromMainThread(scroll_layer->scroll_offset()); |
+ scroll_layer_offset->PushPendingToActive(); |
+ EXPECT_TRUE(AreScrollOffsetsEqual( |
+ scroll_layer_offset.get(), |
+ host_impl->active_tree() |
+ ->property_trees() |
+ ->scroll_tree.GetSyncedScrollOffset(scroll_layer->id()))); |
+ |
+ scoped_refptr<SyncedScrollOffset> transient_scroll_layer_offset = |
+ new SyncedScrollOffset; |
+ transient_scroll_layer_offset->PushFromMainThread( |
transient_scroll_layer->scroll_offset()); |
- scroll_offset_map[transient_scroll_layer->id()]->PushPendingToActive(); |
- EXPECT_TRUE( |
- is_equal(scroll_offset_map, host_impl->active_tree() |
- ->property_trees() |
- ->scroll_tree.scroll_offset_map())); |
+ transient_scroll_layer_offset->PushPendingToActive(); |
+ EXPECT_TRUE(AreScrollOffsetsEqual( |
+ transient_scroll_layer_offset.get(), |
+ host_impl->active_tree() |
+ ->property_trees() |
+ ->scroll_tree.GetSyncedScrollOffset(transient_scroll_layer->id()))); |
// Set ScrollOffset active delta: gfx::ScrollOffset(10, 10) |
LayerImpl* scroll_layer_impl = |
@@ -613,14 +609,20 @@ TEST_F(TreeSynchronizerTest, SynchronizeScrollTreeScrollOffsetMap) { |
EXPECT_EQ(scroll_layer->id(), |
host_impl->active_tree()->CurrentlyScrollingLayer()->id()); |
- scroll_offset_map.erase(transient_scroll_layer->id()); |
- scroll_offset_map[scroll_layer->id()]->SetCurrent(gfx::ScrollOffset(20, 30)); |
- scroll_offset_map[scroll_layer->id()]->PullDeltaForMainThread(); |
- scroll_offset_map[scroll_layer->id()]->SetCurrent(gfx::ScrollOffset(40, 50)); |
- scroll_offset_map[scroll_layer->id()]->PushFromMainThread( |
- gfx::ScrollOffset(100, 100)); |
- scroll_offset_map[scroll_layer->id()]->PushPendingToActive(); |
- EXPECT_TRUE(is_equal(scroll_offset_map, scroll_tree.scroll_offset_map())); |
+ scroll_layer_offset->SetCurrent(gfx::ScrollOffset(20, 30)); |
+ scroll_layer_offset->PullDeltaForMainThread(); |
+ scroll_layer_offset->SetCurrent(gfx::ScrollOffset(40, 50)); |
+ scroll_layer_offset->PushFromMainThread(gfx::ScrollOffset(100, 100)); |
+ scroll_layer_offset->PushPendingToActive(); |
+ EXPECT_TRUE(AreScrollOffsetsEqual( |
+ scroll_layer_offset.get(), |
+ host_impl->active_tree() |
+ ->property_trees() |
+ ->scroll_tree.GetSyncedScrollOffset(scroll_layer->id()))); |
+ EXPECT_EQ(nullptr, host_impl->active_tree() |
+ ->property_trees() |
+ ->scroll_tree.GetSyncedScrollOffset( |
+ transient_scroll_layer->id())); |
} |
TEST_F(TreeSynchronizerTest, RefreshPropertyTreesCachedData) { |