debugging, comments
diff --git a/engine/src/flutter/lib/web_ui/test/engine/semantics/semantics_test.dart b/engine/src/flutter/lib/web_ui/test/engine/semantics/semantics_test.dart index c7e94c3..527815f 100644 --- a/engine/src/flutter/lib/web_ui/test/engine/semantics/semantics_test.dart +++ b/engine/src/flutter/lib/web_ui/test/engine/semantics/semantics_test.dart
@@ -125,6 +125,7 @@ } void _testSemanticRole() { + // This should work too with an input test('Sets id and flt-semantics-identifier on the element', () { semantics() ..debugOverrideTimestampFunction(() => _testTime) @@ -1244,6 +1245,7 @@ semantics().semanticsEnabled = false; }); + // BARTEK: this seems suspicious test('container can be opaque if it is a text field', () async { semantics() ..debugOverrideTimestampFunction(() => _testTime) @@ -1259,6 +1261,8 @@ updateNode(builder, id: 1); updateNode(builder, id: 2); + // FIXME: bartekpacia: Why is there no <sem> around <input>? + owner().updateSemantics(builder.build()); expectSemanticsTree(owner(), ''' <sem>
diff --git a/packages/flutter/lib/src/rendering/object.dart b/packages/flutter/lib/src/rendering/object.dart index d05106f..1af7318 100644 --- a/packages/flutter/lib/src/rendering/object.dart +++ b/packages/flutter/lib/src/rendering/object.dart
@@ -1357,6 +1357,8 @@ /// /// See [RendererBinding] for an example of how this function is used. void flushSemantics() { + print('BARTEK: flushSemantics()'); + if (_semanticsOwner == null) { return; } @@ -3726,6 +3728,8 @@ /// [RenderObject] as annotated by [describeSemanticsConfiguration] changes in /// any way to update the semantics tree. void markNeedsSemanticsUpdate() { + print('RenderObject.markNeedsSemanticsUpdate()'); + assert(!_debugDisposed); assert(!attached || !owner!._debugDoingSemantics); if (!attached || owner!._semanticsOwner == null) { @@ -3799,7 +3803,9 @@ /// Updates the semantic information of the render object. void _updateSemantics() { // BARTEK: 2 - assert(_semanticsConfiguration.isSemanticBoundary || semanticsParent == null); + print('RenderObject._updateSemantics()'); + assert(_semanticsConfiguration.isSemanticBoundary || semanticsParent == null); + if (_needsLayout) { // There's not enough information in this subtree to compute semantics. // The subtree is probably being kept alive by a viewport but not laid out. @@ -4034,8 +4040,13 @@ SemanticsConfiguration config, Iterable<SemanticsNode> children, ) { + SemanticsNode? root = node; + while (root?.parent != null) { + root = root?.parent; + } assert(node == _semantics); // TODO(a14n): remove the following cast by updating type of parameter in either updateWith or assembleSemanticsNode + print('BARTEK: RenderObject.assembleSemanticsNode()'); node.updateWith(config: config, childrenInInversePaintOrder: children as List<SemanticsNode>); }
diff --git a/packages/flutter/lib/src/rendering/view.dart b/packages/flutter/lib/src/rendering/view.dart index 5662b45..a597525 100644 --- a/packages/flutter/lib/src/rendering/view.dart +++ b/packages/flutter/lib/src/rendering/view.dart
@@ -383,6 +383,7 @@ /// A [ui.SemanticsUpdate] is produced by a [SemanticsOwner] during the /// [EnginePhase.flushSemantics] phase. void updateSemantics(ui.SemanticsUpdate update) { + print('RenderView.updateSemantics($update)'); _view.updateSemantics(update); }