Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@mdebbar
Copy link
Contributor

@mdebbar mdebbar commented Mar 1, 2021

Handle the last placeholder in the paragraph correctly.

This issue only happens if the paragraph ends with a placeholder. A workaround would be to add a space-only text span after the placeholder. Some of the issues:

  1. Max intrinsic width doesn't include the last placeholder if there's no text after it.
  2. Line's width/height doesn't include the last placeholder if there's no text after it.
  3. Line doesn't contain the box of the last placeholder if there's no text after it.

This change is accompanied with a unit test as well as a screenshot test.

Goldens PR: flutter/goldens#181

Fixes flutter/flutter#76122

@mdebbar mdebbar added the platform-web Code specifically for the web engine label Mar 1, 2021
@mdebbar mdebbar requested a review from ferhatb March 1, 2021 21:50
@mdebbar mdebbar merged commit aa3bb5e into flutter:master Mar 2, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 2, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 3, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 4, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 4, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 4, 2021
cbracken added a commit to cbracken/flutter that referenced this pull request Mar 4, 2021
flutter/engine@cd0e543...aa3bb5e

2021-03-02 [email protected] [web] Fix painting of last placeholder in paragraph (flutter/engine#24716)
2021-03-02 [email protected] Win32: Support Korean input (flutter/engine#24713)
2021-03-02 [email protected] Add RAII wrapper for Win32 IMM context (flutter/engine#24699)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md
cbracken added a commit to cbracken/flutter that referenced this pull request Mar 4, 2021
flutter/engine@cd0e543...a5ae18b

2021-03-02 [email protected] [web] Fix pointer events for Wacom pen (flutter/engine#24719)
2021-03-02 [email protected] [web] Fix painting of last placeholder in paragraph (flutter/engine#24716)
2021-03-02 [email protected] Win32: Support Korean input (flutter/engine#24713)
2021-03-02 [email protected] Add RAII wrapper for Win32 IMM context (flutter/engine#24699)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 4, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 4, 2021
cbracken added a commit that referenced this pull request Mar 4, 2021
…#24773)

This broke the Linux Web Tests target in the framework tests.

Example failure:
https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20web_tests/11335/overview

Failure log:
```
01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: WidgetSpan calculate correct intrinsic heights [E]
  Test failed. See exception logs above.
  The test description was: WidgetSpan calculate correct intrinsic heights

01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: RichText implements debugFillProperties
01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: RichText implements debugFillProperties
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
Assertion failed: file:///b/s/w/ir/k/flutter/packages/flutter/lib/src/rendering/box.dart:2237:16
!RenderObject.debugCheckingIntrinsics
is not true

The relevant error-causing widget was:
  Text file:///b/s/w/ir/k/flutter/packages/flutter_test/lib/src/binding.dart:567:12

When the exception was thrown, this was the stack:
../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49  throw_
../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
../packages/flutter/src/rendering/layer.dart.js 4485:79                          <fn>
../packages/flutter/src/rendering/layer.dart.js 4551:26                          debugAssertDoesMeetConstraints
../packages/flutter/src/rendering/layer.dart.js 4380:14                          <fn>
../packages/flutter/src/rendering/layer.dart.js 4382:26                          set size
../packages/flutter/src/rendering/paragraph.dart.js 786:17                       performLayout
../packages/flutter/src/rendering/layer.dart.js 3392:14                          layout
../packages/flutter/src/rendering/shifted_box.dart.js 451:36                     performLayout
../packages/flutter/src/rendering/layer.dart.js 3392:14                          layout
../packages/flutter/src/rendering/layer.dart.js 4875:58                          performLayout
../packages/flutter/src/rendering/layer.dart.js 3279:14                          [_layoutWithoutResize]
../packages/flutter/src/rendering/layer.dart.js 6876:107                         flushLayout
../packages/flutter_test/src/_matchers_web.dart.js 3990:30                       drawFrame
../packages/flutter/src/rendering/layer.dart.js 6128:12                          [_handlePersistentFrameCallback]
../packages/flutter/src/scheduler/binding.dart.js 764:9                          [_invokeFrameCallback]
../packages/flutter/src/scheduler/binding.dart.js 732:37                         handleDrawFrame
../packages/flutter_test/src/_matchers_web.dart.js 3954:12                       scheduleWarmUpFrame
../packages/flutter/src/widgets/widget_span.dart.js 52123:11                     <fn>
../packages/flutter/src/widgets/widget_span.dart.js 52125:7                      runApp
../packages/flutter_test/src/_matchers_web.dart.js 3647:18                       _runTestBody
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54            runBody
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5            _async
../packages/flutter_test/src/_matchers_web.dart.js 3644:20                       [_runTestBody]
../dart-sdk/lib/async/zone.dart 1386:13                                          _rootRunBinary
../dart-sdk/lib/async/zone.dart 1272:19                                          runBinary
../packages/flutter_test/src/_matchers_web.dart.js 3636:16                       [_runTest]
../packages/flutter_test/src/_matchers_web.dart.js 4072:44                       <fn>
../packages/fake_async/fake_async.dart.js 141:96                                 <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1788:67                                          _runZoned
../dart-sdk/lib/async/zone.dart 1711:10                                          runZoned
../packages/clock/src/stopwatch.dart.js 364:18                                   withClock
../packages/fake_async/fake_async.dart.js 141:55                                 <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1788:67                                          _runZoned
../dart-sdk/lib/async/zone.dart 1711:10                                          runZoned
../packages/fake_async/fake_async.dart.js 141:20                                 run
../packages/flutter_test/src/_matchers_web.dart.js 4067:17                       runTest
../packages/flutter_test/src/_matchers_web.dart.js 5312:24                       <fn>
../packages/test_api/src/frontend/async_matcher.dart.js 862:17                   <fn>
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50            <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 179:98              <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 247:16              [_run]
../packages/stack_trace/src/stack_zone_specification.dart.js 179:80              <fn>
../dart-sdk/lib/async/zone.dart 1362:47                                          _rootRunUnary
../dart-sdk/lib/async/zone.dart 1265:19                                          runUnary
../dart-sdk/lib/async/future_impl.dart 155:18                                    handleValue
../dart-sdk/lib/async/future_impl.dart 707:44                                    handleValueCallback
../dart-sdk/lib/async/future_impl.dart 736:13                                    _propagateToListeners
../dart-sdk/lib/async/future_impl.dart 406:9                                     <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 247:16              [_run]
../packages/stack_trace/src/stack_zone_specification.dart.js 170:71              <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1162:7                                           runGuarded
../dart-sdk/lib/async/zone.dart 1202:23                                          callback
../dart-sdk/lib/async/schedule_microtask.dart 40:11                              _microtaskLoop
../dart-sdk/lib/async/schedule_microtask.dart 49:5                               _startMicrotaskLoop
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 166:15           <fn>

The following RenderObject was being processed when the exception was fired: RenderParagraph#e6e8f relayoutBoundary=up1 NEEDS-PAINT:
  creator: RichText ← Text ← Center ← Container-[#9a020] ← [root]
  parentData: offset=Offset(0.0, 0.0) (can use size)
  constraints: BoxConstraints(0.0<=w<=800.0, 0.0<=h<=600.0)
  size: Size(640.0, 40.0)
  textAlign: start
  textDirection: ltr
  softWrap: wrapping at box width
  overflow: clip
  maxLines: unlimited
This RenderObject had the following child:
    text: TextSpan
```

This reverts commit aa3bb5e.
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Mar 4, 2021
cbracken pushed a commit to flutter/flutter that referenced this pull request Mar 4, 2021
* aa3bb5e [web] Fix painting of last placeholder in paragraph (flutter/engine#24716)

* a5ae18b [web] Fix pointer events for Wacom pen (flutter/engine#24719)

* 4993c8e Roll Skia from d863ae52d4bb to 036ba86489d7 (3 revisions) (flutter/engine#24732)

* 7f1de85 Roll Dart SDK from f209e60a5415 to 761ed531161f (1 revision) (flutter/engine#24730)

* 44ba1cc Roll Skia from 036ba86489d7 to 786d42c6dac4 (1 revision) (flutter/engine#24733)

* 735876e Fix memory leak and bug in the RunsOnCreationTaskRunner check (flutter/engine#24690)

* 454d29c Roll Skia from 786d42c6dac4 to 12e760e958a7 (10 revisions) (flutter/engine#24738)

* 2c605fd Roll Fuchsia Linux SDK from tJbtmEE4Q... to YhRvbuj9c... (flutter/engine#24739)

* bf97442 Roll Skia from 12e760e958a7 to e80e169ba4c1 (1 revision) (flutter/engine#24740)

* 4d2caac Fix UWP build for UpdateCursorRect rename (flutter/engine#24697)

* 83b2f8f Roll Fuchsia Mac SDK from PRe0w0i4z... to 4TE5n81B-... (flutter/engine#24745)

* 410dd6f Roll Dart SDK from 761ed531161f to f527ddd39bb1 (3 revisions) (flutter/engine#24746)

* 91d9278 Roll Dart SDK from f527ddd39bb1 to 041a6dd2e76b (1 revision) (flutter/engine#24749)

* 03e0a11 Roll Fuchsia Linux SDK from YhRvbuj9c... to _0kewDFPJ... (flutter/engine#24750)

* f5b1351 Roll Skia from e80e169ba4c1 to acf26501fb5a (4 revisions) (flutter/engine#24752)

* 21de22a Roll Skia from acf26501fb5a to a1e30a3a280a (5 revisions) (flutter/engine#24753)

* e29fd6d Roll Fuchsia Mac SDK from 4TE5n81B-... to kPp_BF0q3... (flutter/engine#24759)

* de78d2a Roll Skia from a1e30a3a280a to f0de96f7b82a (7 revisions) (flutter/engine#24760)

* a33687d Roll Skia from f0de96f7b82a to 46d9bb255df4 (2 revisions) (flutter/engine#24762)

* 95215b7 Roll Dart SDK from 041a6dd2e76b to b9302efc8d9a (3 revisions) (flutter/engine#24764)

* 4aeffbe Move CIPD package creation tools under tools/cipd (flutter/engine#24766)

* 8ef7b63 Roll Skia from 46d9bb255df4 to e4ef35caa1bc (9 revisions) (flutter/engine#24769)

* 4bef5f8 Enables semantics when voice control is turned on (flutter/engine#24640)

* a546f16 Roll Fuchsia Linux SDK from _0kewDFPJ... to _vRi_XkB7... (flutter/engine#24771)

* e31cdad Added dependency on CppWinRT for UWP builds (flutter/engine#24770)

* a5ba994 Roll Skia from e4ef35caa1bc to 4db57264955f (1 revision) (flutter/engine#24772)

* 3cf4f1d Revert "[web] Fix painting of last placeholder in paragraph (#24716)" (flutter/engine#24773)

* 91120b3 Roll Skia from 4db57264955f to 21c8ad62cd82 (2 revisions) (flutter/engine#24774)
hjfreyer pushed a commit to hjfreyer/engine that referenced this pull request Mar 22, 2021
hjfreyer pushed a commit to hjfreyer/engine that referenced this pull request Mar 22, 2021
…24716)" (flutter#24773)

This broke the Linux Web Tests target in the framework tests.

Example failure:
https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20web_tests/11335/overview

Failure log:
```
01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: WidgetSpan calculate correct intrinsic heights [E]
  Test failed. See exception logs above.
  The test description was: WidgetSpan calculate correct intrinsic heights

01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: RichText implements debugFillProperties
01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: RichText implements debugFillProperties
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
Assertion failed: file:///b/s/w/ir/k/flutter/packages/flutter/lib/src/rendering/box.dart:2237:16
!RenderObject.debugCheckingIntrinsics
is not true

The relevant error-causing widget was:
  Text file:///b/s/w/ir/k/flutter/packages/flutter_test/lib/src/binding.dart:567:12

When the exception was thrown, this was the stack:
../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49  throw_
../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
../packages/flutter/src/rendering/layer.dart.js 4485:79                          <fn>
../packages/flutter/src/rendering/layer.dart.js 4551:26                          debugAssertDoesMeetConstraints
../packages/flutter/src/rendering/layer.dart.js 4380:14                          <fn>
../packages/flutter/src/rendering/layer.dart.js 4382:26                          set size
../packages/flutter/src/rendering/paragraph.dart.js 786:17                       performLayout
../packages/flutter/src/rendering/layer.dart.js 3392:14                          layout
../packages/flutter/src/rendering/shifted_box.dart.js 451:36                     performLayout
../packages/flutter/src/rendering/layer.dart.js 3392:14                          layout
../packages/flutter/src/rendering/layer.dart.js 4875:58                          performLayout
../packages/flutter/src/rendering/layer.dart.js 3279:14                          [_layoutWithoutResize]
../packages/flutter/src/rendering/layer.dart.js 6876:107                         flushLayout
../packages/flutter_test/src/_matchers_web.dart.js 3990:30                       drawFrame
../packages/flutter/src/rendering/layer.dart.js 6128:12                          [_handlePersistentFrameCallback]
../packages/flutter/src/scheduler/binding.dart.js 764:9                          [_invokeFrameCallback]
../packages/flutter/src/scheduler/binding.dart.js 732:37                         handleDrawFrame
../packages/flutter_test/src/_matchers_web.dart.js 3954:12                       scheduleWarmUpFrame
../packages/flutter/src/widgets/widget_span.dart.js 52123:11                     <fn>
../packages/flutter/src/widgets/widget_span.dart.js 52125:7                      runApp
../packages/flutter_test/src/_matchers_web.dart.js 3647:18                       _runTestBody
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54            runBody
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5            _async
../packages/flutter_test/src/_matchers_web.dart.js 3644:20                       [_runTestBody]
../dart-sdk/lib/async/zone.dart 1386:13                                          _rootRunBinary
../dart-sdk/lib/async/zone.dart 1272:19                                          runBinary
../packages/flutter_test/src/_matchers_web.dart.js 3636:16                       [_runTest]
../packages/flutter_test/src/_matchers_web.dart.js 4072:44                       <fn>
../packages/fake_async/fake_async.dart.js 141:96                                 <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1788:67                                          _runZoned
../dart-sdk/lib/async/zone.dart 1711:10                                          runZoned
../packages/clock/src/stopwatch.dart.js 364:18                                   withClock
../packages/fake_async/fake_async.dart.js 141:55                                 <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1788:67                                          _runZoned
../dart-sdk/lib/async/zone.dart 1711:10                                          runZoned
../packages/fake_async/fake_async.dart.js 141:20                                 run
../packages/flutter_test/src/_matchers_web.dart.js 4067:17                       runTest
../packages/flutter_test/src/_matchers_web.dart.js 5312:24                       <fn>
../packages/test_api/src/frontend/async_matcher.dart.js 862:17                   <fn>
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50            <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 179:98              <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 247:16              [_run]
../packages/stack_trace/src/stack_zone_specification.dart.js 179:80              <fn>
../dart-sdk/lib/async/zone.dart 1362:47                                          _rootRunUnary
../dart-sdk/lib/async/zone.dart 1265:19                                          runUnary
../dart-sdk/lib/async/future_impl.dart 155:18                                    handleValue
../dart-sdk/lib/async/future_impl.dart 707:44                                    handleValueCallback
../dart-sdk/lib/async/future_impl.dart 736:13                                    _propagateToListeners
../dart-sdk/lib/async/future_impl.dart 406:9                                     <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 247:16              [_run]
../packages/stack_trace/src/stack_zone_specification.dart.js 170:71              <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1162:7                                           runGuarded
../dart-sdk/lib/async/zone.dart 1202:23                                          callback
../dart-sdk/lib/async/schedule_microtask.dart 40:11                              _microtaskLoop
../dart-sdk/lib/async/schedule_microtask.dart 49:5                               _startMicrotaskLoop
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 166:15           <fn>

The following RenderObject was being processed when the exception was fired: RenderParagraph#e6e8f relayoutBoundary=up1 NEEDS-PAINT:
  creator: RichText ← Text ← Center ← Container-[#9a020] ← [root]
  parentData: offset=Offset(0.0, 0.0) (can use size)
  constraints: BoxConstraints(0.0<=w<=800.0, 0.0<=h<=600.0)
  size: Size(640.0, 40.0)
  textAlign: start
  textDirection: ltr
  softWrap: wrapping at box width
  overflow: clip
  maxLines: unlimited
This RenderObject had the following child:
    text: TextSpan
```

This reverts commit aa3bb5e.
chriscraws pushed a commit to chriscraws/engine that referenced this pull request Mar 23, 2021
chriscraws pushed a commit to chriscraws/engine that referenced this pull request Mar 23, 2021
…24716)" (flutter#24773)

This broke the Linux Web Tests target in the framework tests.

Example failure:
https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20web_tests/11335/overview

Failure log:
```
01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: WidgetSpan calculate correct intrinsic heights [E]
  Test failed. See exception logs above.
  The test description was: WidgetSpan calculate correct intrinsic heights

01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: RichText implements debugFillProperties
01:09 +107 ~2 -1: test/widgets/rich_text_test.dart: RichText implements debugFillProperties
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
Assertion failed: file:///b/s/w/ir/k/flutter/packages/flutter/lib/src/rendering/box.dart:2237:16
!RenderObject.debugCheckingIntrinsics
is not true

The relevant error-causing widget was:
  Text file:///b/s/w/ir/k/flutter/packages/flutter_test/lib/src/binding.dart:567:12

When the exception was thrown, this was the stack:
../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 236:49  throw_
../dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 29:3    assertFailed
../packages/flutter/src/rendering/layer.dart.js 4485:79                          <fn>
../packages/flutter/src/rendering/layer.dart.js 4551:26                          debugAssertDoesMeetConstraints
../packages/flutter/src/rendering/layer.dart.js 4380:14                          <fn>
../packages/flutter/src/rendering/layer.dart.js 4382:26                          set size
../packages/flutter/src/rendering/paragraph.dart.js 786:17                       performLayout
../packages/flutter/src/rendering/layer.dart.js 3392:14                          layout
../packages/flutter/src/rendering/shifted_box.dart.js 451:36                     performLayout
../packages/flutter/src/rendering/layer.dart.js 3392:14                          layout
../packages/flutter/src/rendering/layer.dart.js 4875:58                          performLayout
../packages/flutter/src/rendering/layer.dart.js 3279:14                          [_layoutWithoutResize]
../packages/flutter/src/rendering/layer.dart.js 6876:107                         flushLayout
../packages/flutter_test/src/_matchers_web.dart.js 3990:30                       drawFrame
../packages/flutter/src/rendering/layer.dart.js 6128:12                          [_handlePersistentFrameCallback]
../packages/flutter/src/scheduler/binding.dart.js 764:9                          [_invokeFrameCallback]
../packages/flutter/src/scheduler/binding.dart.js 732:37                         handleDrawFrame
../packages/flutter_test/src/_matchers_web.dart.js 3954:12                       scheduleWarmUpFrame
../packages/flutter/src/widgets/widget_span.dart.js 52123:11                     <fn>
../packages/flutter/src/widgets/widget_span.dart.js 52125:7                      runApp
../packages/flutter_test/src/_matchers_web.dart.js 3647:18                       _runTestBody
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 84:54            runBody
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 123:5            _async
../packages/flutter_test/src/_matchers_web.dart.js 3644:20                       [_runTestBody]
../dart-sdk/lib/async/zone.dart 1386:13                                          _rootRunBinary
../dart-sdk/lib/async/zone.dart 1272:19                                          runBinary
../packages/flutter_test/src/_matchers_web.dart.js 3636:16                       [_runTest]
../packages/flutter_test/src/_matchers_web.dart.js 4072:44                       <fn>
../packages/fake_async/fake_async.dart.js 141:96                                 <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1788:67                                          _runZoned
../dart-sdk/lib/async/zone.dart 1711:10                                          runZoned
../packages/clock/src/stopwatch.dart.js 364:18                                   withClock
../packages/fake_async/fake_async.dart.js 141:55                                 <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1788:67                                          _runZoned
../dart-sdk/lib/async/zone.dart 1711:10                                          runZoned
../packages/fake_async/fake_async.dart.js 141:20                                 run
../packages/flutter_test/src/_matchers_web.dart.js 4067:17                       runTest
../packages/flutter_test/src/_matchers_web.dart.js 5312:24                       <fn>
../packages/test_api/src/frontend/async_matcher.dart.js 862:17                   <fn>
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 45:50            <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 179:98              <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 247:16              [_run]
../packages/stack_trace/src/stack_zone_specification.dart.js 179:80              <fn>
../dart-sdk/lib/async/zone.dart 1362:47                                          _rootRunUnary
../dart-sdk/lib/async/zone.dart 1265:19                                          runUnary
../dart-sdk/lib/async/future_impl.dart 155:18                                    handleValue
../dart-sdk/lib/async/future_impl.dart 707:44                                    handleValueCallback
../dart-sdk/lib/async/future_impl.dart 736:13                                    _propagateToListeners
../dart-sdk/lib/async/future_impl.dart 406:9                                     <fn>
../packages/stack_trace/src/stack_zone_specification.dart.js 247:16              [_run]
../packages/stack_trace/src/stack_zone_specification.dart.js 170:71              <fn>
../dart-sdk/lib/async/zone.dart 1354:13                                          _rootRun
../dart-sdk/lib/async/zone.dart 1258:19                                          run
../dart-sdk/lib/async/zone.dart 1162:7                                           runGuarded
../dart-sdk/lib/async/zone.dart 1202:23                                          callback
../dart-sdk/lib/async/schedule_microtask.dart 40:11                              _microtaskLoop
../dart-sdk/lib/async/schedule_microtask.dart 49:5                               _startMicrotaskLoop
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 166:15           <fn>

The following RenderObject was being processed when the exception was fired: RenderParagraph#e6e8f relayoutBoundary=up1 NEEDS-PAINT:
  creator: RichText ← Text ← Center ← Container-[#9a020] ← [root]
  parentData: offset=Offset(0.0, 0.0) (can use size)
  constraints: BoxConstraints(0.0<=w<=800.0, 0.0<=h<=600.0)
  size: Size(640.0, 40.0)
  textAlign: start
  textDirection: ltr
  softWrap: wrapping at box width
  overflow: clip
  maxLines: unlimited
This RenderObject had the following child:
    text: TextSpan
```

This reverts commit aa3bb5e.
@mdebbar mdebbar deleted the last_placeholder branch April 15, 2021 17:34
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

cla: yes platform-web Code specifically for the web engine

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Web HTML renderer does not work with widgetspans

3 participants