diff --git a/lib/web_ui/lib/src/engine/canvas_pool.dart b/lib/web_ui/lib/src/engine/canvas_pool.dart index 1d3a289ebe98b..fefcf14b13bfb 100644 --- a/lib/web_ui/lib/src/engine/canvas_pool.dart +++ b/lib/web_ui/lib/src/engine/canvas_pool.dart @@ -95,6 +95,14 @@ class _CanvasPool extends _SaveStackTracking { width: _widthInBitmapPixels, height: _heightInBitmapPixels, ); + if (_canvas == null) { + // Evict BitmapCanvas(s) and retry. + _reduceCanvasMemoryUsage(); + _canvas = html.CanvasElement( + width: _widthInBitmapPixels, + height: _heightInBitmapPixels, + ); + } _canvas.style ..position = 'absolute' ..width = '${cssWidth}px'