Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0444196ff2515c520b37e5c69d4a38dcc8e8d257
      
https://github.com/WebKit/WebKit/commit/0444196ff2515c520b37e5c69d4a38dcc8e8d257
  Author: Antti Koivisto <[email protected]>
  Date:   2025-10-31 (Fri, 31 Oct 2025)

  Changed paths:
    A LayoutTests/fast/inline/blocks-in-inline-layout-expected.html
    A LayoutTests/fast/inline/blocks-in-inline-layout.html
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineItem.h
    M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLine.h
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBox.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp
    M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
    M 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
    M 
Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentPainter.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/rendering/updating/RenderTreeBuilder.h
    M Source/WebCore/rendering/updating/RenderTreeBuilderInline.cpp
    M Source/WebCore/rendering/updating/RenderTreeBuilderInline.h

  Log Message:
  -----------
  [blocks-in-inline] Add a setting to stop RenderTreeBuilder from generating 
continuations
https://bugs.webkit.org/show_bug.cgi?id=301355
rdar://163271827

Reviewed by Alan Baradlay.

Add a setting that stops generation of continuation renderers in cases like

<span>span<div>div</div></span>

The setting is not enabled even for testing yet.

Also add basic IFC support for having blocks in inline context that can handle 
some simple cases.

Test: fast/inline/blocks-in-inline-layout.html
* LayoutTests/fast/inline/blocks-in-inline-layout-expected.html: Added.
* LayoutTests/fast/inline/blocks-in-inline-layout.html: Added.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::ContinuousContent::append):
* Source/WebCore/layout/formattingContexts/inline/InlineFormattingUtils.cpp:
(WebCore::Layout::InlineFormattingUtils::inlineItemWidth const):
(WebCore::Layout::InlineFormattingUtils::nextWrapOpportunity const):
* Source/WebCore/layout/formattingContexts/inline/InlineItem.h:
(WebCore::Layout::InlineItem::isBlock const):
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::collectInlineItems):
* Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::appendText):
(WebCore::Layout::toLineRunType):
* Source/WebCore/layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::Run::isBlock const):
(WebCore::Layout::Line::Run::isContentful const):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBox.cpp:
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):
(WebCore::Layout::LineBox::logicalBorderBoxForAtomicInlineBox const):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::hasTrailingSoftWrapOpportunity):
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineBuilder::collectShapeRanges const):
(WebCore::Layout::LineBuilder::candidateContentForLine):
(WebCore::Layout::LineBuilder::commitCandidateContent):
* 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::appendAtomicInlineLevelDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
* 
Source/WebCore/layout/integration/inline/LayoutIntegrationInlineContentPainter.cpp:
(WebCore::LayoutIntegration::InlineContentPainter::paintDisplayBox):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateRenderTreePositions):
* Source/WebCore/rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::view const):
* Source/WebCore/rendering/updating/RenderTreeBuilderInline.cpp:
(WebCore::RenderTreeBuilder::Inline::Inline):
(WebCore::RenderTreeBuilder::Inline::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Inline::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::Inline::splitFlow):
(WebCore::RenderTreeBuilder::Inline::splitInlines):
(WebCore::RenderTreeBuilder::Inline::childBecameNonInline):
* Source/WebCore/rendering/updating/RenderTreeBuilderInline.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to