[webkit-changes] [WebKit/WebKit] 0e3b34: Web Inspector: DOM tree view Cmd-F search unexpect...

Qianlang Chen noreply at github.com
Thu Apr 4 12:21:02 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0e3b3412203ccd0a2671b5a3f88f156bc9b8a298
      https://github.com/WebKit/WebKit/commit/0e3b3412203ccd0a2671b5a3f88f156bc9b8a298
  Author: Qianlang Chen <qianlangchen at apple.com>
  Date:   2024-04-04 (Thu, 04 Apr 2024)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js

  Log Message:
  -----------
  Web Inspector: DOM tree view Cmd-F search unexpectedly changes text displayed
rdar://125797803
https://bugs.webkit.org/show_bug.cgi?id=272047

Reviewed by Devin Rousso.

When doing a Cmd-F search in the DOM tree view, there is logic to first
convert the search matches into a change list, which is a list of
highlight elements to add or text to change, then execute the changes in
that list.

   - The source for generating change list (works fine) is in
     `WI.highlightRangesWithStyleClass`.
   - The source for executing the changes (problematic) is in
     `WI.DOMTreeElement._updateSearchHighlight`.

Executing a change list can be one of two opposite kinds: applying for
showing the search results, or reverting to hide the results. When
reverting the changes, the original code did it in the same order as
they're applied, which can cause problems when there are multiple
changes to the same node.

   - For instance, when the search query is "a" and some node's text is
     "ab ac", the change list can be something like
     {"ab ac"->"b ac", "b ac"->"b c"} (where the "a"s get put into newly
     generated highlight elements). When reverting, if it's still done
     in the same order, we'd be setting the text to "b ac" rather than
     the expected "ab ac".

This commit simply make it so that reverting a change list is done in
the reverse order, therefore preserving the original text when there
are more than one text changes applied to the same node.

* Source/WebInspectorUI/UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype._updateSearchHighlight):
(WI.DOMTreeElement.prototype._updateSearchHighlight.updateEntryShow): Deleted.
(WI.DOMTreeElement.prototype._updateSearchHighlight.updateEntryHide): Deleted.
   - When reverting changes, do so in the reverse order.
   - Remove the helper functions as they don't improve readability
     anymore with the new logic.

Canonical link: https://commits.webkit.org/277073@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