[webkit-changes] [WebKit/WebKit] 306860: Highlights are not repainted if associated live ra...

megangardner noreply at github.com
Fri Sep 29 11:15:16 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 306860296d33ebc428b319f6d705faa3a51f6e33
      https://github.com/WebKit/WebKit/commit/306860296d33ebc428b319f6d705faa3a51f6e33
  Author: Megan Gardner <megan_gardner at apple.com>
  Date:   2023-09-29 (Fri, 29 Sep 2023)

  Changed paths:
    A LayoutTests/fast/repaint/highlight-paint-after-range-change-expected.txt
    A LayoutTests/fast/repaint/highlight-paint-after-range-change.html
    M Source/WebCore/Modules/highlight/Highlight.cpp
    M Source/WebCore/Modules/highlight/Highlight.h
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/Document.h
    M Source/WebCore/dom/Range.cpp
    M Source/WebCore/dom/Range.h

  Log Message:
  -----------
  Highlights are not repainted if associated live ranges are changed.
https://bugs.webkit.org/show_bug.cgi?id=262168
rdar://116108148

Reviewed by Wenson Hsieh.

When a range is changed, we need to repaint the previous and the new range.
Fortunately, we already had a mechanism to get Positions from the ranges
so that we have the information we need at paint time. We can use these
stale positions to know what the range was before updating, and repaint the old
range, as well as the new range.
Also a rename for more clarity around setting flags for highlights in Range.

* LayoutTests/fast/repaint/highlight-paint-after-range-change-expected.txt: Added.
* LayoutTests/fast/repaint/highlight-paint-after-range-change.html: Added.
* Source/WebCore/Modules/highlight/Highlight.h:
(WebCore::HighlightRange::HighlightRange):
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::collectHighlightRangesFromRegister):
(WebCore::repaintRange):
(WebCore::Document::updateHighlightPositions):
(WebCore::Document::collectRangeDataFromRegister): Deleted.
* Source/WebCore/dom/Document.h:
* Source/WebCore/dom/Range.cpp:
(WebCore::Range::updateAssociatedHighlight):
(WebCore::Range::setStart):
(WebCore::Range::setEnd):
(WebCore::Range::nodeChildrenChanged):
(WebCore::Range::nodeChildrenWillBeRemoved):
(WebCore::Range::nodeWillBeRemoved):
(WebCore::Range::textInserted):
(WebCore::Range::textRemoved):
(WebCore::Range::textNodesMerged):
(WebCore::Range::textNodeSplit):
* Source/WebCore/dom/Range.h:

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




More information about the webkit-changes mailing list