Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 43c15c8949412ea14aecc29a5e182be908d861ef
      
https://github.com/WebKit/WebKit/commit/43c15c8949412ea14aecc29a5e182be908d861ef
  Author: Wenson Hsieh <[email protected]>
  Date:   2024-10-19 (Sat, 19 Oct 2024)

  Changed paths:
    A 
LayoutTests/editing/selection/ios/selection-moves-between-composited-layers-expected.txt
    A 
LayoutTests/editing/selection/ios/selection-moves-between-composited-layers.html
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

  Log Message:
  -----------
  [iOS] Selection disappears on login.live.com when 
SelectionHonorsOverflowScrolling is enabled
https://bugs.webkit.org/show_bug.cgi?id=281828
rdar://138255535

Reviewed by Abrar Rahman Protyasha and Richard Robinson.

When SelectionHonorsOverflowScrolling is enabled, it's possible for selection 
views to be removed
from the view hierarchy, even though the selection still exists in the DOM. If 
the layer
corresponding to an element containing one of the selection endpoints goes from 
being composited to
non-composited but the selection otherwise remains in the same place (i.e. same 
selection rects), we
currently bail from `-[WKContentView _updateChangedSelection:]`. However, an 
update here is
necessary in order to reparent the text selection display interaction's managed 
views in its new
compositing layer.

To fix this, we add a member to `WKSelectionDrawingInfo` to keep track of the 
platform layer where
the selection is being displayed; if this changes, then we'll consider the 
selection drawing info
changed, and update the selection accordingly.

* 
LayoutTests/editing/selection/ios/selection-moves-between-composited-layers-expected.txt:
 Added.
* 
LayoutTests/editing/selection/ios/selection-moves-between-composited-layers.html:
 Added.

Add a test to exercise the change (the button and event handler are for manual 
testing only).

* Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(WebKit::operator==):

Implement the main fix here, by invalidating selection drawing info when the 
compositing layer ID
changes.

(WebKit::operator<<):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to