[webkit-changes] [WebKit/WebKit] 635546: [iPad] scribd.com: Selection handles are missing a...

Wenson Hsieh noreply at github.com
Tue Jan 28 07:51:45 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6355462b3a9548b4d9df5a39afc5b4b923b57c95
      https://github.com/WebKit/WebKit/commit/6355462b3a9548b4d9df5a39afc5b4b923b57c95
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2025-01-28 (Tue, 28 Jan 2025)

  Changed paths:
    A LayoutTests/editing/selection/ios/do-not-hide-selection-in-non-editable-visible-container-2-expected.txt
    A LayoutTests/editing/selection/ios/do-not-hide-selection-in-non-editable-visible-container-2.html
    M Source/WebCore/rendering/RenderObject.h
    M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.h

  Log Message:
  -----------
  [iPad] scribd.com: Selection handles are missing after selecting text across multiple lines
https://bugs.webkit.org/show_bug.cgi?id=286595
rdar://143720155

Reviewed by Abrar Rahman Protyasha.

Make another adjustment to the "hidden selection" heuristic after 289369 at main. In the case where:

-   There's a parent renderer that is out-of-flow, empty (zero width or zero height), and the
    nearest common ancestor of both selection endpoints.

-   The selection endpoints are both out-of-flow as well, but are visible (non-zero width and
    height).

…we'll currently (incorrectly) treat the selection as hidden. Mitigate this by relaxing the
conditions for this heuristic, such that _both_ selection endpoints must be hidden, in order for
this codepath to kick in.

This allows us to keep the native selection in iCloud Pages hidden (285925 at main), but still show the
default selection highlight and handles in the case of Scribd.

* LayoutTests/editing/selection/ios/do-not-hide-selection-in-non-editable-visible-container-2-expected.txt: Added.
* LayoutTests/editing/selection/ios/do-not-hide-selection-in-non-editable-visible-container-2.html: Added.

Add another layout test to exercise this case.

* Source/WebCore/rendering/RenderObject.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::rendererIsTransparentOrFullyClipped):
(WebKit::WebPage::isTransparentOrFullyClipped const):
(WebKit::selectionIsTransparentOrFullyClipped):
(WebKit::WebPage::getPlatformEditorStateCommon const):
(WebKit::closestCommonContainerInRenderTree): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:

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