Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Unified Diff: cc/layers/picture_layer_impl_unittest.cc

Issue 890963002: Revert of cc: Stop pushing properties every activation for picture layers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/resources/picture_layer_tiling.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/picture_layer_impl_unittest.cc
diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc
index b280faa5300e9557bfdd41a4a1ff2ad4fc0ed546..0f4bf8d1d5a97d398f7d3dfc9b65d584c0a41fc5 100644
--- a/cc/layers/picture_layer_impl_unittest.cc
+++ b/cc/layers/picture_layer_impl_unittest.cc
@@ -73,8 +73,7 @@
: proxy_(base::MessageLoopProxy::current()),
host_impl_(LowResTilingsSettings(), &proxy_, &shared_bitmap_manager_),
root_id_(6),
- parent_id_(7),
- id_(8),
+ id_(7),
pending_layer_(nullptr),
old_pending_layer_(nullptr),
active_layer_(nullptr) {
@@ -85,8 +84,7 @@
: proxy_(base::MessageLoopProxy::current()),
host_impl_(settings, &proxy_, &shared_bitmap_manager_),
root_id_(6),
- parent_id_(7),
- id_(8) {
+ id_(7) {
host_impl_.SetViewportSize(gfx::Size(10000, 10000));
}
@@ -198,21 +196,17 @@
// Steal from the recycled tree if possible.
scoped_ptr<LayerImpl> pending_root = pending_tree->DetachLayerTree();
- scoped_ptr<LayerImpl> pending_parent;
scoped_ptr<FakePictureLayerImpl> pending_layer;
DCHECK_IMPLIES(pending_root, pending_root->id() == root_id_);
if (!pending_root) {
pending_root = LayerImpl::Create(pending_tree, root_id_);
- pending_parent = LayerImpl::Create(pending_tree, parent_id_);
pending_layer = FakePictureLayerImpl::Create(pending_tree, id_);
if (!tile_size.IsEmpty())
pending_layer->set_fixed_tile_size(tile_size);
pending_layer->SetDrawsContent(true);
} else {
- pending_parent = pending_root->RemoveChild(pending_root->children()[0]);
pending_layer.reset(static_cast<FakePictureLayerImpl*>(
- pending_parent->RemoveChild(pending_parent->children()[0])
- .release()));
+ pending_root->RemoveChild(pending_root->children()[0]).release()));
if (!tile_size.IsEmpty())
pending_layer->set_fixed_tile_size(tile_size);
}
@@ -222,8 +216,7 @@
pending_layer->SetContentBounds(raster_source->GetSize());
pending_layer->SetRasterSourceOnPending(raster_source, invalidation);
- pending_parent->AddChild(pending_layer.Pass());
- pending_root->AddChild(pending_parent.Pass());
+ pending_root->AddChild(pending_layer.Pass());
pending_tree->SetRootLayer(pending_root.Pass());
pending_layer_ = static_cast<FakePictureLayerImpl*>(
@@ -313,7 +306,6 @@
TestSharedBitmapManager shared_bitmap_manager_;
FakeLayerTreeHostImpl host_impl_;
int root_id_;
- int parent_id_;
int id_;
FakePictureLayerImpl* pending_layer_;
FakePictureLayerImpl* old_pending_layer_;
@@ -393,155 +385,6 @@
EXPECT_GT(tilings->num_tilings(), 0u);
for (size_t i = 0; i < tilings->num_tilings(); ++i)
VerifyAllTilesExistAndHavePile(tilings->tiling_at(i), pending_pile.get());
-}
-
-TEST_F(PictureLayerImplTest, PushPropertiesForNewRasterSource) {
- gfx::Size tile_size(100, 100);
- gfx::Size layer_bounds(400, 400);
-
- scoped_refptr<FakePicturePileImpl> filled_pile =
- FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
- scoped_refptr<FakePicturePileImpl> empty_pile =
- FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
-
- // A new layer needs to push properties.
- SetupPendingTree(filled_pile);
- EXPECT_TRUE(pending_layer_->needs_push_properties());
-
- host_impl_.ActivateSyncTree();
-
- // By default a layer has nothing to push.
- host_impl_.CreatePendingTree();
- EXPECT_FALSE(pending_layer_->needs_push_properties());
-
- // Setting a new raster source will require pushing.
- pending_layer_->SetRasterSourceOnPending(filled_pile, Region());
- EXPECT_TRUE(pending_layer_->needs_push_properties());
-
- host_impl_.ActivateSyncTree();
- host_impl_.CreatePendingTree();
- EXPECT_FALSE(pending_layer_->needs_push_properties());
-
- // A new source that changes CanHaveTilings also requires pushing.
- EXPECT_TRUE(pending_layer_->CanHaveTilings());
- pending_layer_->SetRasterSourceOnPending(empty_pile, Region());
- EXPECT_FALSE(pending_layer_->CanHaveTilings());
- EXPECT_TRUE(pending_layer_->needs_push_properties());
-}
-
-TEST_F(PictureLayerImplTest, PushPropertiesForNewTiling) {
- base::TimeTicks time_ticks;
- time_ticks += base::TimeDelta::FromMilliseconds(1);
- host_impl_.SetCurrentBeginFrameArgs(
- CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
-
- gfx::Size tile_size(100, 100);
- gfx::Size layer_bounds(400, 400);
-
- scoped_refptr<FakePicturePileImpl> filled_pile =
- FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
- scoped_refptr<FakePicturePileImpl> empty_pile =
- FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
-
- // A new layer needs to push properties.
- SetupPendingTree(filled_pile);
- EXPECT_TRUE(pending_layer_->needs_push_properties());
-
- host_impl_.ActivateSyncTree();
-
- // By default a layer has nothing to push.
- host_impl_.CreatePendingTree();
- host_impl_.pending_tree()->PushPageScaleFromMainThread(1.f, 0.25f, 100.f);
- EXPECT_FALSE(pending_layer_->needs_push_properties());
-
- // Update tiles without changing the scale, shouldn't need to push properties.
- time_ticks += base::TimeDelta::FromMilliseconds(200);
- host_impl_.SetCurrentBeginFrameArgs(
- CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
- SetupDrawPropertiesAndUpdateTiles(pending_layer_, 1.f, 1.f, 1.f, 1.f, false);
-
- EXPECT_EQ(1.f, pending_layer_->HighResTiling()->contents_scale());
- EXPECT_FALSE(pending_layer_->needs_push_properties());
-
- // Change the scale on the layer, which should make a new high res tiling.
- time_ticks += base::TimeDelta::FromMilliseconds(200);
- host_impl_.SetCurrentBeginFrameArgs(
- CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
- SetupDrawPropertiesAndUpdateTiles(pending_layer_, 6.f, 1.f, 6.f, 1.f, false);
-
- EXPECT_EQ(6.f, pending_layer_->HighResTiling()->contents_scale());
- EXPECT_TRUE(pending_layer_->needs_push_properties());
-}
-
-TEST_F(PictureLayerImplTest, PushPropertiesForNewTiles) {
- base::TimeTicks time_ticks;
- time_ticks += base::TimeDelta::FromMilliseconds(1);
- host_impl_.SetCurrentBeginFrameArgs(
- CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
-
- gfx::Size tile_size(100, 100);
- gfx::Size layer_bounds(400, 100000);
-
- host_impl_.SetViewportSize(gfx::Size(100, 100));
-
- scoped_refptr<FakePicturePileImpl> filled_pile =
- FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
- scoped_refptr<FakePicturePileImpl> empty_pile =
- FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
-
- // A new layer needs to push properties.
- SetupPendingTree(filled_pile);
- EXPECT_TRUE(pending_layer_->needs_push_properties());
-
- host_impl_.ActivateSyncTree();
-
- // By default a layer has nothing to push.
- host_impl_.CreatePendingTree();
- EXPECT_FALSE(pending_layer_->needs_push_properties());
-
- host_impl_.pending_tree()->PushPageScaleFromMainThread(1.f, 0.25f, 100.f);
-
- int num_tiles_y =
- pending_layer_->HighResTiling()->TilingDataForTesting().num_tiles_y();
-
- // Verify a bit about current pending tree's current tiles.
- EXPECT_EQ(1.f, pending_layer_->HighResTiling()->contents_scale());
- EXPECT_TRUE(pending_layer_->HighResTiling()->TileAt(0, 0));
- EXPECT_FALSE(pending_layer_->HighResTiling()->TileAt(0, num_tiles_y - 1));
-
- // Update tiles without changing the viewport, nothing new to push.
- time_ticks += base::TimeDelta::FromMilliseconds(1);
- host_impl_.SetCurrentBeginFrameArgs(
- CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
- host_impl_.pending_tree()->UpdateDrawProperties();
-
- // Same tiles on the pending tree.
- EXPECT_TRUE(pending_layer_->HighResTiling()->TileAt(0, 0));
- EXPECT_FALSE(pending_layer_->HighResTiling()->TileAt(0, num_tiles_y - 1));
- // Means nothing new to push.
- EXPECT_FALSE(pending_layer_->needs_push_properties());
-
- host_impl_.ActivateSyncTree();
- host_impl_.CreatePendingTree();
- EXPECT_FALSE(pending_layer_->needs_push_properties());
-
- host_impl_.pending_tree()->PushPageScaleFromMainThread(1.f, 0.25f, 100.f);
-
- // Change what part of the layer is visible in the viewport and update draw
- // properties and tile priorities. This should create new tiles on the layer.
- pending_layer_->parent()->SetPosition(
- gfx::PointF(0.f, -layer_bounds.height() + 100.f));
-
- time_ticks += base::TimeDelta::FromMilliseconds(1);
- host_impl_.SetCurrentBeginFrameArgs(
- CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
- host_impl_.pending_tree()->UpdateDrawProperties();
-
- // There are new tiles on the pending tree now.
- EXPECT_FALSE(pending_layer_->HighResTiling()->TileAt(0, 0));
- EXPECT_TRUE(pending_layer_->HighResTiling()->TileAt(0, num_tiles_y - 1));
- // So the layer needs to push properties to sync the new tiles.
- EXPECT_TRUE(pending_layer_->needs_push_properties());
}
TEST_F(PictureLayerImplTest, ExternalViewportRectForPrioritizingTiles) {
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/resources/picture_layer_tiling.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698