Skip to content

[Web CanvasKit] Emojis are not rendered and throwing an exception. #74823

@kunit1

Description

@kunit1

Steps to Reproduce

  1. Add a text field
  2. Run flutter web in Canvaskit mode
  3. Type emoji in text field
  4. Observe exception in log

Expected results:
Show emoji in text field and no exception
Actual results:
No emoji shown and exception in terminal

Logs
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
Assertion failed: org-dartlang-sdk:///flutter_web_sdk/lib/_engine/engine/canvaskit/text.dart:675:14
glyphs.length == codeUnitsSupported.length
is not true

The relevant error-causing widget was:
  TextField file:///D:/SampleApps/AppOne/app_one/lib/widgets/commentField.dart:44:20

When the exception was thrown, this was the stack:
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49  throw_
C:/b/s/w/ir/cache/builder/src/out/host_debug/dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/canvaskit/text.dart 675:49                 [_ensureFontsSupportText]
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/canvaskit/text.dart 700:5                  addText
packages/flutter/src/painting/text_span.dart 204:14                                                                        build
packages/flutter/src/painting/text_painter.dart 569:7                                                                      layout
packages/flutter/src/rendering/editable.dart 2044:18                                                                       [_layoutText]
packages/flutter/src/rendering/editable.dart 2092:5                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/proxy_box.dart 5029:11                                                                      performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/material/input_decorator.dart 931:8                                                                   [_layoutLineBox]
packages/flutter/src/material/input_decorator.dart 1033:28                                                                 [_layout]
packages/flutter/src/material/input_decorator.dart 1294:44                                                                 performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 118:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/proxy_box.dart 279:7                                                                        performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/layout_helper.dart 54:10                                                                    layoutChild
packages/flutter/src/rendering/flex.dart 830:43                                                                            [_computeSizes]
packages/flutter/src/rendering/flex.dart 932:32                                                                            performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/shifted_box.dart 226:5                                                                      performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/shifted_box.dart 430:7                                                                      performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/layout_helper.dart 54:10                                                                    layoutChild
packages/flutter/src/rendering/flex.dart 897:45                                                                            [_computeSizes]
packages/flutter/src/rendering/flex.dart 932:32                                                                            performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/layout_helper.dart 54:10                                                                    layoutChild
packages/flutter/src/rendering/stack.dart 570:43                                                                           [_computeSize]
packages/flutter/src/rendering/stack.dart 597:12                                                                           performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/layout_helper.dart 54:10                                                                    layoutChild
packages/flutter/src/rendering/flex.dart 897:45                                                                            [_computeSizes]
packages/flutter/src/rendering/flex.dart 932:32                                                                            performLayout
packages/flutter/src/rendering/object.dart 1784:7                                                                          layout
packages/flutter/src/rendering/custom_layout.dart 171:10                                                                   layoutChild
packages/flutter/src/material/scaffold.dart 925:7                                                                          performLayout
packages/flutter/src/rendering/custom_layout.dart 243:7                                                                    [_callPerformLayout]
packages/flutter/src/rendering/custom_layout.dart 407:14                                                                   performLayout
packages/flutter/src/rendering/object.dart 1641:7                                                                          [_layoutWithoutResize]
packages/flutter/src/rendering/object.dart 884:17                                                                          flushLayout
packages/flutter/src/rendering/binding.dart 453:19                                                                         drawFrame
packages/flutter/src/widgets/binding.dart 874:13                                                                           drawFrame
packages/flutter/src/rendering/binding.dart 319:5                                                                          [_handlePersistentFrameCallback]
packages/flutter/src/scheduler/binding.dart 1144:15                                                                        [_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart 1082:9                                                                         handleDrawFrame
packages/flutter/src/scheduler/binding.dart 998:5                                                                          [_handleDrawFrame]
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/platform_dispatcher.dart 896:13            invoke
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine/platform_dispatcher.dart 145:5             invokeOnDrawFrame
C:/b/s/w/ir/cache/builder/src/out/host_debug/flutter_web_sdk/lib/_engine/engine.dart 259:45                                <fn>

The following RenderObject was being processed when the exception was fired: RenderEditable#1d7ee relayoutBoundary=up22 NEEDS-LAYOUT NEEDS-PAINT:
  creator: _Editable-[GlobalKey#980d3] ← Semantics ← CompositedTransformTarget ←
    IgnorePointer-[GlobalKey#ab863] ← Semantics ← Listener ←
    RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#28662] ← Listener ← _ScrollableScope
    ← Scrollable ← _RawMouseRegion ← MouseRegion ← ⋯
  parentData: <none> (can use size)
  constraints: BoxConstraints(w=414.9, 0.0<=h<=710.4)
  size: Size(414.9, 19.0)
  cursorColor: Color(0xff2196f3)
  showCursor: ValueNotifier<bool>#e96a8(true)
  maxLines: 1
  minLines: null
  selectionColor: Color(0x662196f3)
  textScaleFactor: 1.0
  locale: en_US
  selection: TextSelection(baseOffset: 2, extentOffset: 2, affinity: TextAffinity.downstream,
    isDirectional: false)
  offset: ScrollPositionWithSingleContext#a8b93(offset: 0.0, range: 0.0..0.0, viewport: 414.9,
    ScrollableState, ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#62302,
    ScrollDirection.idle)
This RenderObject had the following child:
    text: TextSpan
════════════════════════════════════════════════════════════════════════════════════════════════════
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Assertion failed: file:///D:/flutter/packages/flutter/lib/src/rendering/box.dart:2107:12
Another exception was thrown: Unexpected null value.
Another exception was thrown: Assertion failed: file:///D:/flutter/packages/flutter/lib/src/rendering/box.dart:2107:12
Another exception was thrown: Assertion failed: file:///D:/flutter/packages/flutter/lib/src/rendering/box.dart:2107:12
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
Another exception was thrown: Unexpected null value.
[√] Flutter (Channel master, 1.26.0-13.0.pre.194, on Microsoft Windows [Version 10.0.18363.1316], locale en-CA)
    • Flutter version 1.26.0-13.0.pre.194 at D:\flutter
    • Framework revision 71aec53acb (13 hours ago), 2021-01-26 21:53:04 -0800
    • Engine revision b11bef83a5
    • Dart version 2.12.0 (build 2.12.0-263.0.dev)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at C:\Users\kusay\AppData\Local\Android\Sdk
    • Platform android-30, build-tools 29.0.2
    • ANDROID_SDK_ROOT = C:\Users\kusay\AppData\Local\Android\Sdk
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Professional 2019 16.8.0)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional
    • Visual Studio Professional 2019 version 16.8.30709.132
    • Windows 10 SDK version 10.0.17763.0

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code, 64-bit edition (version 1.52.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 3.18.1

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.18363.1316]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 87.0.4280.141
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 88.0.705.50

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Critical issues such as a build break or regressiona: internationalizationSupporting other languages or locales. (aka i18n)a: text inputEntering text in a text field or keyboard related problemsc: crashStack traces logged to the consolec: regressionIt was better in the past than it is nowe: web_canvaskitCanvasKit (a.k.a. Skia-on-WebGL) rendering backend for Webfound in release: 1.26Found to occur in 1.26has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-webWeb applications specifically

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions