From 4f4fdbf21fa224ef33e5945cbdcf1220f7c409f0 Mon Sep 17 00:00:00 2001 From: Yegor Date: Mon, 9 Mar 2020 16:26:18 -0700 Subject: [PATCH] fix "TREE INCONSISTENT" noise in compositing_test.dart (#16995) --- lib/web_ui/lib/src/engine/surface/picture.dart | 7 ++++++- lib/web_ui/test/compositing_test.dart | 11 +++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/web_ui/lib/src/engine/surface/picture.dart b/lib/web_ui/lib/src/engine/surface/picture.dart index c95559691be..c0a5f2198cc 100644 --- a/lib/web_ui/lib/src/engine/surface/picture.dart +++ b/lib/web_ui/lib/src/engine/surface/picture.dart @@ -356,6 +356,11 @@ abstract class PersistedPicture extends PersistedLeafSurface { EngineCanvas _canvas; + /// Returns the canvas used by this picture layer. + /// + /// Useful for tests. + EngineCanvas get debugCanvas => _canvas; + final double dx; final double dy; final EnginePicture picture; @@ -624,7 +629,7 @@ abstract class PersistedPicture extends PersistedLeafSurface { super.debugValidate(validationErrors); if (picture.recordingCanvas.didDraw) { - if (_canvas == null) { + if (debugCanvas == null) { validationErrors .add('$runtimeType has non-trivial picture but it has null canvas'); } diff --git a/lib/web_ui/test/compositing_test.dart b/lib/web_ui/test/compositing_test.dart index 04f534cf76e..d2473d42617 100644 --- a/lib/web_ui/test/compositing_test.dart +++ b/lib/web_ui/test/compositing_test.dart @@ -151,7 +151,7 @@ void main() { scene2.preroll(); scene2.update(scene1); - commitScene(scene1); + commitScene(scene2); expect(picture.retainCount, 1); expect(picture.buildCount, 1); expect(picture.updateCount, 0); @@ -169,7 +169,7 @@ void main() { scene3.preroll(); scene3.update(scene2); - commitScene(scene1); + commitScene(scene3); expect(picture.retainCount, 2); expect(picture.buildCount, 1); expect(picture.updateCount, 0); @@ -271,6 +271,13 @@ class MockPersistedPicture extends PersistedPicture { int updateCount = 0; int applyPaintCount = 0; + final BitmapCanvas _fakeCanvas = BitmapCanvas(const Rect.fromLTRB(0, 0, 10, 10)); + + @override + EngineCanvas get debugCanvas { + return _fakeCanvas; + } + @override double matchForUpdate(PersistedPicture existingSurface) { return identical(existingSurface.picture, picture) ? 0.0 : 1.0;