[webkit-changes] [WebKit/WebKit] d0bccb: Clarify Inline Box Traversal Methods

fantasai noreply at github.com
Mon Jan 20 11:14:21 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d0bccb1198a21b4353be52a27f83e95dbbda45f5
      https://github.com/WebKit/WebKit/commit/d0bccb1198a21b4353be52a27f83e95dbbda45f5
  Author: Elika Etemad <fantasai.bugs at inkedblade.net>
  Date:   2025-01-20 (Mon, 20 Jan 2025)

  Changed paths:
    M Source/WebCore/dom/Position.cpp
    M Source/WebCore/editing/Editing.cpp
    M Source/WebCore/editing/RenderedPosition.cpp
    M Source/WebCore/editing/VisiblePosition.cpp
    M Source/WebCore/editing/VisibleUnits.cpp
    M Source/WebCore/html/HTMLTextFormControlElement.cpp
    M Source/WebCore/layout/integration/inline/InlineIteratorBox.cpp
    M Source/WebCore/layout/integration/inline/InlineIteratorBox.h
    M Source/WebCore/layout/integration/inline/InlineIteratorBoxInlines.h
    M Source/WebCore/layout/integration/inline/InlineIteratorInlineBox.cpp
    M Source/WebCore/layout/integration/inline/InlineIteratorInlineBox.h
    M Source/WebCore/layout/integration/inline/InlineIteratorLineBox.cpp
    M Source/WebCore/layout/integration/inline/InlineIteratorLineBox.h
    M Source/WebCore/layout/integration/inline/InlineIteratorLogicalOrderTraversal.cpp
    M Source/WebCore/layout/integration/inline/InlineIteratorLogicalOrderTraversal.h
    M Source/WebCore/layout/integration/inline/InlineIteratorTextBox.cpp
    M Source/WebCore/layout/integration/inline/InlineIteratorTextBox.h
    M Source/WebCore/layout/integration/inline/LineSelection.h
    M Source/WebCore/rendering/BackgroundPainter.cpp
    M Source/WebCore/rendering/CaretRectComputation.cpp
    M Source/WebCore/rendering/InlineBoxPainter.cpp
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderBoxModelObject.cpp
    M Source/WebCore/rendering/RenderElement.cpp
    M Source/WebCore/rendering/RenderFileUploadControl.cpp
    M Source/WebCore/rendering/RenderImage.cpp
    M Source/WebCore/rendering/RenderInline.cpp
    M Source/WebCore/rendering/RenderLineBreak.cpp
    M Source/WebCore/rendering/RenderText.cpp
    M Source/WebCore/rendering/RenderVTTCue.cpp
    M Source/WebCore/rendering/TextBoxTrimmer.cpp
    M Source/WebCore/rendering/svg/RenderSVGInlineText.cpp
    M Source/WebCore/rendering/svg/RenderSVGText.cpp
    M Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp
    M Source/WebCore/rendering/svg/SVGTextQuery.cpp
    M Source/WebCore/style/InlineTextBoxStyle.cpp

  Log Message:
  -----------
  Clarify Inline Box Traversal Methods
https://bugs.webkit.org/show_bug.cgi?id=286207
rdar://problem/143182898

Reviewed by Alan Baradlay.

Our inline box traversal methods go in LTR order, not tree order
or coordinate order. Rename them to clarify this, and add methods
for coordinate order traversal.

This is a cosmetic change, setting us up to switch to coordinate
order traversal or source order traversal methods where needed.

* Source/WebCore/dom/Position.cpp:
(WebCore::hasInlineRun):
(WebCore::Position::inlineBoxAndOffset const):
* Source/WebCore/editing/Editing.cpp:
(WebCore::visualDistanceOnSameLine):
(WebCore::advanceInDirection):
(WebCore::forEachRenderedBoxBetween):
* Source/WebCore/editing/RenderedPosition.cpp:
(WebCore::RenderedPosition::previousLeafOnLine const):
(WebCore::RenderedPosition::nextLeafOnLine const):
(WebCore::RenderedPosition::leftBoundaryOfBidiRun const):
(WebCore::RenderedPosition::rightBoundaryOfBidiRun const):
* Source/WebCore/editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):
* Source/WebCore/editing/VisibleUnits.cpp:
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
* Source/WebCore/html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
* Source/WebCore/layout/integration/inline/InlineIteratorBox.cpp:
(WebCore::InlineIterator::BoxIterator::traverseLineRightwardOnLine):
(WebCore::InlineIterator::BoxIterator::traverseLineRightwardOnLineSkippingChildren):
(WebCore::InlineIterator::Box::nextLineRightwardOnLine const):
(WebCore::InlineIterator::Box::nextLineLeftwardOnLine const):
(WebCore::InlineIterator::Box::nextLineRightwardOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::Box::nextLineLeftwardOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::LeafBoxIterator::traverseLineRightwardOnLine):
(WebCore::InlineIterator::LeafBoxIterator::traverseLineLeftwardOnLine):
(WebCore::InlineIterator::LeafBoxIterator::traverseLineRightwardOnLineIgnoringLineBreak):
(WebCore::InlineIterator::LeafBoxIterator::traverseLineLeftwardOnLineIgnoringLineBreak):
(WebCore::InlineIterator::BoxIterator::traverseNextOnLine): Deleted.
(WebCore::InlineIterator::BoxIterator::traverseNextOnLineSkippingChildren): Deleted.
(WebCore::InlineIterator::Box::nextOnLine const): Deleted.
(WebCore::InlineIterator::Box::previousOnLine const): Deleted.
(WebCore::InlineIterator::Box::nextOnLineIgnoringLineBreak const): Deleted.
(WebCore::InlineIterator::Box::previousOnLineIgnoringLineBreak const): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traverseNextOnLine): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLine): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traverseNextOnLineIgnoringLineBreak): Deleted.
(WebCore::InlineIterator::LeafBoxIterator::traversePreviousOnLineIgnoringLineBreak): Deleted.
* Source/WebCore/layout/integration/inline/InlineIteratorBox.h:
(WebCore::InlineIterator::BoxIterator::operator++):
(WebCore::InlineIterator::LeafBoxIterator::operator++):
* Source/WebCore/layout/integration/inline/InlineIteratorBoxInlines.h:
(WebCore::InlineIterator::Box::nextLogicalRightwardOnLine const):
(WebCore::InlineIterator::Box::nextLogicalLeftwardOnLine const):
(WebCore::InlineIterator::Box::nextLogicalRightwardOnLineIgnoringLineBreak const):
(WebCore::InlineIterator::Box::nextLogicalLeftwardOnLineIgnoringLineBreak const):
* Source/WebCore/layout/integration/inline/InlineIteratorInlineBox.cpp:
(WebCore::InlineIterator::InlineBox::closedEdges const):
(WebCore::InlineIterator::InlineBox::nextInlineBoxLineRightward const):
(WebCore::InlineIterator::InlineBox::nextInlineBoxLineLeftward const):
(WebCore::InlineIterator::InlineBox::endLeafBox const):
(WebCore::InlineIterator::InlineBox::descendants const):
(WebCore::InlineIterator::InlineBoxIterator::traverseInlineBoxLineRightward):
(WebCore::InlineIterator::InlineBoxIterator::traverseInlineBoxLineLeftward):
(WebCore::InlineIterator::lineLeftmostInlineBoxFor):
(WebCore::InlineIterator::InlineBox::nextInlineBox const): Deleted.
(WebCore::InlineIterator::InlineBox::previousInlineBox const): Deleted.
(WebCore::InlineIterator::InlineBoxIterator::traverseNextInlineBox): Deleted.
(WebCore::InlineIterator::InlineBoxIterator::traversePreviousInlineBox): Deleted.
(WebCore::InlineIterator::firstInlineBoxFor): Deleted.
* Source/WebCore/layout/integration/inline/InlineIteratorInlineBox.h:
* Source/WebCore/layout/integration/inline/InlineIteratorLineBox.cpp:
(WebCore::InlineIterator::LineBox::lineLeftmostLeafBox const):
(WebCore::InlineIterator::LineBox::lineRightmostLeafBox const):
(WebCore::InlineIterator::closestBoxForHorizontalPosition):
(WebCore::InlineIterator::LineBox::ellipsisSelectionState const):
(WebCore::InlineIterator::LineBox::firstLeafBox const): Deleted.
(WebCore::InlineIterator::LineBox::lastLeafBox const): Deleted.
* Source/WebCore/layout/integration/inline/InlineIteratorLineBox.h:
* Source/WebCore/layout/integration/inline/InlineIteratorLogicalOrderTraversal.cpp:
(WebCore::InlineIterator::firstTextBoxInLogicalOrderFor):
* Source/WebCore/layout/integration/inline/InlineIteratorLogicalOrderTraversal.h:
(WebCore::InlineIterator::leafBoxesInLogicalOrder):
* Source/WebCore/layout/integration/inline/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::lineLeftmostTextBoxFor):
(WebCore::InlineIterator::textBoxesFor):
(WebCore::InlineIterator::firstTextBoxFor): Deleted.
* Source/WebCore/layout/integration/inline/InlineIteratorTextBox.h:
* Source/WebCore/layout/integration/inline/LineSelection.h:
(WebCore::LineSelection::selectionState):
* Source/WebCore/rendering/BackgroundPainter.cpp:
(WebCore::BackgroundPainter::boxShadowShouldBeAppliedToBackground):
* Source/WebCore/rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForInline):
* Source/WebCore/rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::paintFillLayer):
(WebCore::InlineBoxPainter::paintBoxShadow):
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeLineAdjustmentForPagination):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::containsNonZeroBidiLevel const):
(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren const):
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::positionWithRTLInlineBoxContainingBlock):
* Source/WebCore/rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::getLeadingCorner const):
* Source/WebCore/rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintControl):
* Source/WebCore/rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionGeometries):
* Source/WebCore/rendering/RenderInline.cpp:
(WebCore::RenderInline::innerPaddingBoxWidth const):
(WebCore::RenderInline::linesBoundingBox const):
(WebCore::RenderInline::offsetForInFlowPositionedInline const):
(WebCore::RenderInline::paintOutline const):
* Source/WebCore/rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionGeometries):
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionGeometries):
(WebCore::lineDirectionPointFitsInBox):
(WebCore::createVisiblePositionAfterAdjustingOffsetForBiDi):
(WebCore::RenderText::positionForPoint):
(WebCore::RenderText::firstRunLocation const):
(WebCore::RenderText::linesBoundingBox const):
(WebCore::RenderText::caretMinOffset const):
(WebCore::RenderText::caretMaxOffset const):
* Source/WebCore/rendering/RenderVTTCue.cpp:
(WebCore::RenderVTTCue::initializeLayoutParameters):
(WebCore::RenderVTTCue::repositionCueSnapToLinesSet):
(WebCore::RenderVTTCue::repositionGenericCue):
* Source/WebCore/rendering/TextBoxTrimmer.cpp:
(WebCore::shouldIgnoreAsFirstLastFormattedLineContainer):
* Source/WebCore/rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::positionForPoint):
* Source/WebCore/rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::layoutCharactersInTextBoxes):
(WebCore::RenderSVGText::paintInlineChildren):
* Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
* Source/WebCore/rendering/svg/SVGTextQuery.cpp:
(WebCore::inlineBoxForRenderer):
(WebCore::SVGTextQuery::collectTextBoxesInInlineBox):
* Source/WebCore/style/InlineTextBoxStyle.cpp:
(WebCore::minLogicalTopForTextDecorationLineUnder):
(WebCore::maxLogicalBottomForTextDecorationLineUnder):

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



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


More information about the webkit-changes mailing list