Ignore:
Timestamp:
May 20, 2021, 11:08:36 AM (4 years ago)
Author:
Chris Lord
Message:

Allow passing a VisibleRectContext when calculating the clipped overflow rect
https://bugs.webkit.org/show_bug.cgi?id=226007

Reviewed by Simon Fraser.

Refactor rendering classes to allow specifying a VisibleRectContext
when calculating the clipped overflow rect.

No new tests, this is just a small refactor.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isOffScreen const):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::renderedRectsForMarkers):

  • page/SpatialNavigation.cpp:

(WebCore::hasOffscreenRect):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::clippedOverflowRect const):

  • rendering/RenderBox.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::mayCauseRepaintInsideViewport const):
(WebCore::RenderElement::isVisibleInDocumentRect const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRect const):

  • rendering/RenderInline.h:
  • rendering/RenderLineBreak.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::pixelSnappedAbsoluteClippedOverflowRect const):
(WebCore::RenderObject::clippedOverflowRect const):
(WebCore::RenderObject::computeRect const):
(WebCore::absoluteRectsForRangeInText):

  • rendering/RenderObject.h:

(WebCore::RenderObject::absoluteClippedOverflowRectForRepaint const):
(WebCore::RenderObject::clippedOverflowRectForRepaint const):
(WebCore::RenderObject::outlineBoundsForRepaint const):
(WebCore::RenderObject::computeAbsoluteRepaintRect const):
(WebCore::RenderObject::computeRectForRepaint const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::clippedOverflowRect const):

  • rendering/RenderReplaced.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::clippedOverflowRect const):

  • rendering/RenderTableCell.h:
  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::clippedOverflowRect const):

  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):
(WebCore::RenderTableRow::clippedOverflowRect const):

  • rendering/RenderTableRow.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::clippedOverflowRect const):

  • rendering/RenderText.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::updateVisibleViewportRect):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::clippedOverflowRect const):

  • rendering/svg/RenderSVGForeignObject.h:
  • rendering/svg/RenderSVGGradientStop.h:
  • rendering/svg/RenderSVGHiddenContainer.h:
  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::clippedOverflowRect const):

  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::clippedOverflowRect const):

  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::clippedOverflowRect const):

  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::clippedOverflowRect const):

  • rendering/svg/RenderSVGText.h:
  • rendering/svg/SVGRenderTreeAsText.cpp:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/rendering/RenderTableRow.cpp

    r275478 r277802  
    152152    // layout, so we know that our bounds didn't change. This code is just making up for
    153153    // the fact that we did not repaint in setStyle() because we had a layout hint.
    154     // We cannot call repaint() because our clippedOverflowRectForRepaint() is taken from the
     154    // We cannot call repaint() because our clippedOverflowRect() is taken from the
    155155    // parent table, and being mid-layout, that is invalid. Instead, we repaint our cells.
    156156    if (selfNeedsLayout() && checkForRepaintDuringLayout()) {
     
    163163}
    164164
    165 LayoutRect RenderTableRow::clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const
     165LayoutRect RenderTableRow::clippedOverflowRect(const RenderLayerModelObject* repaintContainer, VisibleRectContext context) const
    166166{
    167167    ASSERT(parent());
     
    169169    // will accommodate a row outline and any visual effects on the row itself), but we also need to add in
    170170    // the repaint rects of cells.
    171     LayoutRect result = RenderBox::clippedOverflowRectForRepaint(repaintContainer);
     171    LayoutRect result = RenderBox::clippedOverflowRect(repaintContainer, context);
    172172    for (RenderTableCell* cell = firstCell(); cell; cell = cell->nextCell()) {
    173173        // Even if a cell is a repaint container, it's the row that paints the background behind it.
    174174        // So we don't care if a cell is a repaintContainer here.
    175         result.uniteIfNonZero(cell->clippedOverflowRectForRepaint(repaintContainer));
     175        result.uniteIfNonZero(cell->clippedOverflowRect(repaintContainer, context));
    176176    }
    177177    return result;
Note: See TracChangeset for help on using the changeset viewer.