diff --git a/lib/web_ui/dev/goldens_lock.yaml b/lib/web_ui/dev/goldens_lock.yaml index 039e231b31e15..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: 76ee6c69bf493b4b860e6685d0145ec8ac734f2c +revision: 8df047cbfb1edb34569f3170a26e718fef22ffa7 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..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. @@ -782,6 +793,10 @@ void testMain() { ); }); + test('emoji text with skin tone', () async { + await testSampleText('emoji_with_skin_tone', '👋🏿 👋🏾 👋🏽 👋🏼 👋🏻'); + }); + // Make sure we clear the canvas in between frames. test('empty frame after contentful frame', () async { // First draw a frame with a red rectangle 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