[webkit-changes] [WebKit/WebKit] 6687e3: [Remote Inspection] youtube.com: targeting 'Try se...

Wenson Hsieh noreply at github.com
Thu Jan 2 09:39:48 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6687e347f6f9a0538b3bb2902a530161a1201195
      https://github.com/WebKit/WebKit/commit/6687e347f6f9a0538b3bb2902a530161a1201195
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2025-01-02 (Thu, 02 Jan 2025)

  Changed paths:
    A LayoutTests/fast/element-targeting/target-container-with-visual-overflow-expected.txt
    A LayoutTests/fast/element-targeting/target-container-with-visual-overflow.html
    M Source/WebCore/page/ElementTargetingController.cpp
    M Source/WebCore/page/ElementTargetingController.h

  Log Message:
  -----------
  [Remote Inspection] youtube.com: targeting 'Try searching to get started' selects the entire app
https://bugs.webkit.org/show_bug.cgi?id=285265
rdar://133476860

Reviewed by Richard Robinson.

Make a couple small adjustments to element targeting heuristics:

1.  When computing viewport area ratio for targeted elements, expand the bounds of containers with
    visual overflow to include the bounds of their children. Ideally, this would recurse down the
    DOM tree to include all descendants, but simply taking immediate children into account (with
    a caching strategy to avoid repeating work) seems to work well in practice, without requiring us
    to compute the absolute bounds for all elements in the document when targeting.

2.  Don't consider viewport area ratio when performing selector-based targeting. This allows element
    targeting to properly reveal visually dissimilar elements that were previously hidden through
    element targeting, in the case where they're no longer candidates for targeting due to being too
    large or small relative to the viewport.

* LayoutTests/fast/element-targeting/target-container-with-visual-overflow-expected.txt: Added.
* LayoutTests/fast/element-targeting/target-container-with-visual-overflow.html: Added.

Add a layout test to exercise the fix, by verifying that a container with visual overflow covering
the entire viewport gets skipped when targeting.

* Source/WebCore/page/ElementTargetingController.cpp:
(WebCore::ElementTargetingController::findTargets):
(WebCore::ElementTargetingController::findAllTargets):
(WebCore::absoluteBoundsForTargetAreaRatio):
(WebCore::ElementTargetingController::extractTargets):

See above for more details.

* Source/WebCore/page/ElementTargetingController.h:

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