[webkit-changes] [WebKit/WebKit] e1044d: Avoid some repaints in RenderElement::repaintAfter...

Simon Fraser noreply at github.com
Tue Nov 7 21:24:32 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e1044db535ada573a7d99b80c08ea0351a7cc92b
      https://github.com/WebKit/WebKit/commit/e1044db535ada573a7d99b80c08ea0351a7cc92b
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-11-07 (Tue, 07 Nov 2023)

  Changed paths:
    M LayoutTests/fast/box-shadow/shadow-repaint-expected.txt
    M LayoutTests/fast/css-grid-layout/grid-element-change-columns-repaint-expected.txt
    M LayoutTests/fast/css-grid-layout/grid-element-change-rows-repaint-expected.txt
    M LayoutTests/fast/css-grid-layout/grid-item-change-column-repaint-expected.txt
    M LayoutTests/fast/css-grid-layout/grid-item-change-row-repaint-expected.txt
    M LayoutTests/fast/repaint/align-items-overflow-change-expected.txt
    M LayoutTests/fast/repaint/border-radius-repaint-2-expected.txt
    M LayoutTests/fast/repaint/focus-ring-repaint-expected.txt
    M LayoutTests/fast/repaint/justify-items-change-expected.txt
    M LayoutTests/fast/repaint/justify-items-legacy-change-expected.txt
    M LayoutTests/fast/repaint/justify-items-overflow-change-expected.txt
    M LayoutTests/fast/repaint/justify-self-change-expected.txt
    M LayoutTests/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt
    M LayoutTests/fast/repaint/reflection-table-layout-expected.txt
    M LayoutTests/fast/repaint/repaint-float-only-and-moves-expected.txt
    M LayoutTests/fast/repaint/text-content-shrinks-repaint-expected.txt
    M LayoutTests/fast/repaint/text-content-shrinks-repaint.html
    M LayoutTests/fast/repaint/transform-table-layout-expected.txt
    A LayoutTests/platform/ios-wk2/fast/box-shadow/shadow-repaint-expected.txt
    M LayoutTests/platform/ios-wk2/fast/repaint/focus-ring-repaint-expected.txt
    M LayoutTests/platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt
    A LayoutTests/platform/ios-wk2/fast/repaint/text-content-shrinks-repaint-expected.txt
    M LayoutTests/platform/ios/fast/repaint/border-radius-repaint-2-expected.txt
    M LayoutTests/platform/mac-ventura-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt
    M LayoutTests/platform/mac-wk1/fast/repaint/border-radius-repaint-2-expected.txt
    A LayoutTests/platform/mac-wk1/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt
    R LayoutTests/platform/mac-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt
    M Source/WebCore/rendering/RenderElement.cpp

  Log Message:
  -----------
  Avoid some repaints in RenderElement::repaintAfterLayoutIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=264275
rdar://118014812

Reviewed by Alan Baradlay.

In RenderElement::repaintAfterLayoutIfNeeded(), we repaint both the old and the new clippedOverflowRect in the
`fullRepaint` code path. But these rectangles might overlap; we only need to repaint both if one does not
contain the other. The `contains` checks also take care of the equality check.

* LayoutTests/fast/css-grid-layout/grid-element-change-columns-repaint-expected.txt:
* LayoutTests/fast/css-grid-layout/grid-element-change-rows-repaint-expected.txt:
* LayoutTests/fast/css-grid-layout/grid-item-change-column-repaint-expected.txt:
* LayoutTests/fast/css-grid-layout/grid-item-change-row-repaint-expected.txt:
* LayoutTests/fast/repaint/align-items-overflow-change-expected.txt:
* LayoutTests/fast/repaint/border-radius-repaint-2-expected.txt:
* LayoutTests/fast/repaint/focus-ring-repaint-expected.txt:
* LayoutTests/fast/repaint/justify-items-change-expected.txt:
* LayoutTests/fast/repaint/justify-items-legacy-change-expected.txt:
* LayoutTests/fast/repaint/justify-items-overflow-change-expected.txt:
* LayoutTests/fast/repaint/justify-self-change-expected.txt:
* LayoutTests/fast/repaint/reflection-table-layout-expected.txt:
* LayoutTests/fast/repaint/repaint-float-only-and-moves-expected.txt:
* LayoutTests/fast/repaint/text-content-shrinks-repaint-expected.txt:
* LayoutTests/fast/repaint/text-content-shrinks-repaint.html:
* LayoutTests/fast/repaint/transform-table-layout-expected.txt:
* LayoutTests/platform/ios-wk2/fast/repaint/focus-ring-repaint-expected.txt:
* LayoutTests/platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
* LayoutTests/platform/ios-wk2/fast/repaint/text-content-shrinks-repaint-expected.txt: Copied from LayoutTests/fast/repaint/text-content-shrinks-repaint-expected.txt.
* LayoutTests/platform/ios/fast/repaint/border-radius-repaint-2-expected.txt:
* LayoutTests/platform/mac-wk1/fast/repaint/border-radius-repaint-2-expected.txt:
* LayoutTests/platform/mac-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):

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




More information about the webkit-changes mailing list