From 56f5e529782be9c6aed3f87f5667d468db853f86 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Mon, 28 Jun 2021 11:10:38 -0700 Subject: [PATCH 1/5] Roll CanvasKit to 0.28.1 --- lib/web_ui/lib/src/engine/canvaskit/initialization.dart | 2 +- lib/web_ui/test/canvaskit/canvas_golden_test.dart | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/web_ui/lib/src/engine/canvaskit/initialization.dart b/lib/web_ui/lib/src/engine/canvaskit/initialization.dart index 9fa46e1582857..73ed164428edf 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/initialization.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/initialization.dart @@ -84,7 +84,7 @@ const bool canvasKitForceCpuOnly = bool.fromEnvironment( /// NPM, update this URL to `https://unpkg.com/canvaskit-wasm@0.34.0/bin/`. const String canvasKitBaseUrl = String.fromEnvironment( 'FLUTTER_WEB_CANVASKIT_URL', - defaultValue: 'https://unpkg.com/canvaskit-wasm@0.28.0/bin/', + defaultValue: 'https://unpkg.com/canvaskit-wasm@0.28.1/bin/', ); final String canvasKitBuildUrl = canvasKitBaseUrl + (kProfileMode ? 'profiling/' : ''); diff --git a/lib/web_ui/test/canvaskit/canvas_golden_test.dart b/lib/web_ui/test/canvaskit/canvas_golden_test.dart index e9904ba98e5c9..7145971a5d405 100644 --- a/lib/web_ui/test/canvaskit/canvas_golden_test.dart +++ b/lib/web_ui/test/canvaskit/canvas_golden_test.dart @@ -782,6 +782,11 @@ void testMain() { ); }); + test('emoji text with skin tone', () async { + await testSampleText('emoji_with_skin_tone', '👋🏿 👋🏾 👋🏽 👋🏼 👋🏻', + write: true); + }); + // Make sure we clear the canvas in between frames. test('empty frame after contentful frame', () async { // First draw a frame with a red rectangle From 0b6296af070e8c97e2035f822ccf1dad807fc750 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Mon, 28 Jun 2021 11:22:07 -0700 Subject: [PATCH 2/5] Update goldens lock --- lib/web_ui/dev/goldens_lock.yaml | 2 +- lib/web_ui/test/canvaskit/canvas_golden_test.dart | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/web_ui/dev/goldens_lock.yaml b/lib/web_ui/dev/goldens_lock.yaml index 039e231b31e15..5174fb57aae7e 100644 --- a/lib/web_ui/dev/goldens_lock.yaml +++ b/lib/web_ui/dev/goldens_lock.yaml @@ -1,2 +1,2 @@ repository: https://github.com/flutter/goldens.git -revision: 76ee6c69bf493b4b860e6685d0145ec8ac734f2c +revision: 619b764a68c7cffb000f474f9051d3d2bf0777bb diff --git a/lib/web_ui/test/canvaskit/canvas_golden_test.dart b/lib/web_ui/test/canvaskit/canvas_golden_test.dart index 7145971a5d405..66904c2e3eeb7 100644 --- a/lib/web_ui/test/canvaskit/canvas_golden_test.dart +++ b/lib/web_ui/test/canvaskit/canvas_golden_test.dart @@ -783,8 +783,7 @@ void testMain() { }); test('emoji text with skin tone', () async { - await testSampleText('emoji_with_skin_tone', '👋🏿 👋🏾 👋🏽 👋🏼 👋🏻', - write: true); + await testSampleText('emoji_with_skin_tone', '👋🏿 👋🏾 👋🏽 👋🏼 👋🏻'); }); // Make sure we clear the canvas in between frames. From 19bdc50720e774fb767bde375895422c6ffd155b Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Mon, 28 Jun 2021 12:36:03 -0700 Subject: [PATCH 3/5] Add more golden tests for fixed issues --- lib/web_ui/test/canvaskit/canvas_golden_test.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/web_ui/test/canvaskit/canvas_golden_test.dart b/lib/web_ui/test/canvaskit/canvas_golden_test.dart index 66904c2e3eeb7..9300dc33f03ad 100644 --- a/lib/web_ui/test/canvaskit/canvas_golden_test.dart +++ b/lib/web_ui/test/canvaskit/canvas_golden_test.dart @@ -761,6 +761,17 @@ void testMain() { ); }); + test('sample Bengali text', () async { + await testSampleText( + 'bengali', + 'ঈদের জামাত মসজিদে, মানতে হবে স্বাস্থ্যবিধি: ধর্ম মন্ত্রণালয়', + ); + }); + + test('hindi svayan test', () async { + await testSampleText('hindi_svayan', 'स्वयं'); + }); + // We've seen text break when we load many fonts simultaneously. This test // combines text in multiple languages into one long paragraph to make sure // we can handle it. From 6052eda2d42092425d906ccbc642077435bfb1b9 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Mon, 28 Jun 2021 12:50:25 -0700 Subject: [PATCH 4/5] Update goldens lock --- lib/web_ui/dev/goldens_lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/web_ui/dev/goldens_lock.yaml b/lib/web_ui/dev/goldens_lock.yaml index 5174fb57aae7e..9793398899b9b 100644 --- a/lib/web_ui/dev/goldens_lock.yaml +++ b/lib/web_ui/dev/goldens_lock.yaml @@ -1,2 +1,2 @@ repository: https://github.com/flutter/goldens.git -revision: 619b764a68c7cffb000f474f9051d3d2bf0777bb +revision: 8df047cbfb1edb34569f3170a26e718fef22ffa7 From bead58ca4d5a573c82826571eedb830174f0ec27 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Mon, 28 Jun 2021 14:13:06 -0700 Subject: [PATCH 5/5] Disable webgl test on Safari desktop as well --- lib/web_ui/test/canvaskit/common.dart | 7 ++++--- lib/web_ui/test/canvaskit/surface_test.dart | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/web_ui/test/canvaskit/common.dart b/lib/web_ui/test/canvaskit/common.dart index 20d58f074fb6d..d6eadc450326e 100644 --- a/lib/web_ui/test/canvaskit/common.dart +++ b/lib/web_ui/test/canvaskit/common.dart @@ -7,11 +7,12 @@ import 'package:test/test.dart'; import 'package:ui/src/engine.dart'; import 'package:ui/ui.dart' as ui; +/// Whether the current browser is Safari. +bool get isSafari => browserEngine == BrowserEngine.webkit; + /// Whether the current browser is Safari on iOS. // TODO: https://github.com/flutter/flutter/issues/60040 -bool get isIosSafari => - browserEngine == BrowserEngine.webkit && - operatingSystem == OperatingSystem.iOs; +bool get isIosSafari => isSafari && operatingSystem == OperatingSystem.iOs; /// Whether the current browser is Firefox. bool get isFirefox => browserEngine == BrowserEngine.firefox; diff --git a/lib/web_ui/test/canvaskit/surface_test.dart b/lib/web_ui/test/canvaskit/surface_test.dart index 594acc9135d8a..59e740e961ea0 100644 --- a/lib/web_ui/test/canvaskit/surface_test.dart +++ b/lib/web_ui/test/canvaskit/surface_test.dart @@ -89,6 +89,7 @@ void testMain() { final html.CanvasElement canvas = surface.htmlElement.children.single as html.CanvasElement; final dynamic ctx = canvas.getContext('webgl2'); + expect(ctx, isNotNull); final dynamic loseContextExtension = ctx.getExtension('WEBGL_lose_context'); loseContextExtension.loseContext(); @@ -112,7 +113,7 @@ void testMain() { expect(afterContextLost, isNot(same(before))); }, // Firefox doesn't have the WEBGL_lose_context extension. - skip: isFirefox || isIosSafari, + skip: isFirefox || isSafari, ); // Regression test for https://github.com/flutter/flutter/issues/75286