From 9c20cb010bc65b1ac10a705187c341082d7f8cb6 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Fri, 25 Mar 2022 17:56:50 -0700 Subject: [PATCH] Warn about invalid arguments to ColorFilter.mode Fixes https://github.com/flutter/flutter/issues/100702 --- lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart | 2 +- lib/web_ui/lib/src/engine/canvaskit/color_filter.dart | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart b/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart index 05c55d2c15561..cc1a11732c754 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/canvaskit_api.dart @@ -970,7 +970,7 @@ class SkMaskFilter { @JS() class SkColorFilterNamespace { - external SkColorFilter MakeBlend(Float32List color, SkBlendMode blendMode); + external SkColorFilter? MakeBlend(Float32List color, SkBlendMode blendMode); external SkColorFilter MakeMatrix( Float32List matrix, // 20-element matrix ); diff --git a/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart b/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart index 7c6af4760a777..de8345b4f620b 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/color_filter.dart @@ -83,10 +83,14 @@ class CkBlendModeColorFilter extends CkColorFilter { @override SkColorFilter _initRawColorFilter() { - return canvasKit.ColorFilter.MakeBlend( + final SkColorFilter? filter = canvasKit.ColorFilter.MakeBlend( toSharedSkColor1(color), toSkBlendMode(blendMode), ); + if (filter == null) { + throw ArgumentError('Invalid parameters for blend mode ColorFilter'); + } + return filter; } @override