From 93a087fb7a9a2d1c477c53ae0dd24fc4f97335c3 Mon Sep 17 00:00:00 2001 From: Yegor Jbanov Date: Fri, 6 Mar 2020 13:39:34 -0800 Subject: [PATCH] fix "TREE INCONSISTENT" noise in compositing_test.dart --- 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 c95559691be61..c0a5f2198cc75 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 04f534cf76ebe..d2473d4261780 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;