[webkit-changes] [WebKit/WebKit] 399b65: [IFC][Ruby][Bidi] Empty base with non-empty annota...

Alan Baradlay noreply at github.com
Tue Dec 12 19:41:55 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 399b65153f6977f4bd6fd62827fc9cbc87307ca9
      https://github.com/WebKit/WebKit/commit/399b65153f6977f4bd6fd62827fc9cbc87307ca9
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-12-12 (Tue, 12 Dec 2023)

  Changed paths:
    M Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.cpp
    M Source/WebCore/layout/formattingContexts/inline/ruby/RubyFormattingContext.h
    M Source/WebCore/rendering/RenderBlockFlow.cpp

  Log Message:
  -----------
  [IFC][Ruby][Bidi] Empty base with non-empty annotation box is not rendered
https://bugs.webkit.org/show_bug.cgi?id=266236

Reviewed by Antti Koivisto.

In InlineDisplayContentBuilder::processBidiContent, we assume that if an inline box has
the "has content" bit set (e.g. <span>this inline box has content</span>), the child
content will (at some point in this loop as we walk through the inline content) initiate constructing the parent inline box's display box.
This is to keep the pre-computed bidi visual order intact (inline boxes normally participate in bidi ordering through their content).

However while _empty_ ruby bases with non-empty annotations considered "contentful", we won't be seeing any _inline_ child content in this loop
(as annotation boxes are not part of the regular inline boxes).

* Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::AncestorStack::push):
(WebCore::Layout::createDisplayBoxNodeForContainerAndPushToAncestorStack):
(WebCore::Layout::InlineDisplayContentBuilder::ensureDisplayBoxForContainer):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent): Let's create a display box for ruby base
(WebCore::Layout::createdDisplayBoxNodeForElementBoxAndPushToAncestorStack): Deleted.

Canonical link: https://commits.webkit.org/271963@main




More information about the webkit-changes mailing list