Index: cc/trees/layer_tree_host_unittest.cc |
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc |
index f589c84fc0484d96431c936bb0a93d0ed707888e..51c5d7e0bfd2c78229d34074259d274c2e1111df 100644 |
--- a/cc/trees/layer_tree_host_unittest.cc |
+++ b/cc/trees/layer_tree_host_unittest.cc |
@@ -1112,6 +1112,12 @@ class TestOpacityChangeLayerDelegate : public ContentLayerClient { |
if (test_layer_) |
test_layer_->SetOpacity(0.f); |
} |
+ scoped_refptr<DisplayItemList> PaintContentsToDisplayList( |
+ const gfx::Rect& clip, |
+ GraphicsContextStatus gc_status) override { |
+ NOTIMPLEMENTED(); |
+ return DisplayItemList::Create(); |
+ } |
bool FillsBoundsCompletely() const override { return false; } |
private: |
@@ -2321,6 +2327,13 @@ class LayerTreeHostTestLCDChange : public LayerTreeHostTest { |
++paint_count_; |
} |
+ scoped_refptr<DisplayItemList> PaintContentsToDisplayList( |
+ const gfx::Rect& clip, |
+ GraphicsContextStatus gc_status) override { |
+ NOTIMPLEMENTED(); |
+ return DisplayItemList::Create(); |
+ } |
+ |
bool FillsBoundsCompletely() const override { return false; } |
private: |
@@ -2591,6 +2604,13 @@ class LayerTreeHostTestChangeLayerPropertiesInPaintContents |
layer_->SetBounds(gfx::Size(2, 2)); |
} |
+ scoped_refptr<DisplayItemList> PaintContentsToDisplayList( |
+ const gfx::Rect& clip, |
+ GraphicsContextStatus gc_status) override { |
+ NOTIMPLEMENTED(); |
+ return DisplayItemList::Create(); |
+ } |
+ |
bool FillsBoundsCompletely() const override { return false; } |
private: |
@@ -5653,6 +5673,9 @@ class LayerTreeHostTestCrispUpAfterPinchEndsWithOneCopy |
TestWebGraphicsContext3D::Create(); |
context3d->set_support_image(true); |
context3d->set_support_sync_query(true); |
+#if defined(OS_MACOSX) |
+ context3d->set_support_texture_rectangle(true); |
+#endif |
if (delegating_renderer()) |
return FakeOutputSurface::CreateDelegating3d(context3d.Pass()); |
@@ -5840,4 +5863,59 @@ class LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles |
MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousDrawWhenCreatingVisibleTiles); |
+class LayerTreeHostTestOneActivatePerManageTiles : public LayerTreeHostTest { |
+ public: |
+ LayerTreeHostTestOneActivatePerManageTiles() |
+ : notify_ready_to_activate_count_(0u), scheduled_manage_tiles_count_(0) {} |
+ |
+ void SetupTree() override { |
+ client_.set_fill_with_nonsolid_color(true); |
+ scoped_refptr<FakePictureLayer> root_layer = |
+ FakePictureLayer::Create(&client_); |
+ root_layer->SetBounds(gfx::Size(1500, 1500)); |
+ root_layer->SetIsDrawable(true); |
+ |
+ layer_tree_host()->SetRootLayer(root_layer); |
+ LayerTreeHostTest::SetupTree(); |
+ } |
+ |
+ void BeginTest() override { |
+ layer_tree_host()->SetViewportSize(gfx::Size(16, 16)); |
+ PostSetNeedsCommitToMainThread(); |
+ } |
+ |
+ void InitializedRendererOnThread(LayerTreeHostImpl* host_impl, |
+ bool success) override { |
+ ASSERT_TRUE(success); |
+ host_impl->tile_manager()->SetScheduledRasterTaskLimitForTesting(1); |
+ } |
+ |
+ void NotifyReadyToActivateOnThread(LayerTreeHostImpl* impl) override { |
+ ++notify_ready_to_activate_count_; |
+ EndTestAfterDelayMs(100); |
+ } |
+ |
+ void ScheduledActionManageTiles() override { |
+ ++scheduled_manage_tiles_count_; |
+ } |
+ |
+ void AfterTest() override { |
+ // Expect at most a notification for each scheduled manage tiles, plus one |
+ // for the initial commit (which doesn't go through scheduled actions). |
+ // The reason this is not an equality is because depending on timing, we |
+ // might get a manage tiles but not yet get a notification that we're |
+ // ready to activate. The intent of a test is to ensure that we don't |
+ // get more than one notification per manage tiles, so this is OK. |
+ EXPECT_LE(notify_ready_to_activate_count_, |
+ 1u + scheduled_manage_tiles_count_); |
+ } |
+ |
+ protected: |
+ FakeContentLayerClient client_; |
+ size_t notify_ready_to_activate_count_; |
+ size_t scheduled_manage_tiles_count_; |
+}; |
+ |
+MULTI_THREAD_IMPL_TEST_F(LayerTreeHostTestOneActivatePerManageTiles); |
+ |
} // namespace cc |