Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aeacdd2cd7d9d2d77cc232b524975ee2f0815191
      
https://github.com/WebKit/WebKit/commit/aeacdd2cd7d9d2d77cc232b524975ee2f0815191
  Author: Wenson Hsieh <wenson_hs...@apple.com>
  Date:   2024-10-23 (Wed, 23 Oct 2024)

  Changed paths:
    A 
LayoutTests/editing/selection/ios/autoscroll-text-field-in-subframe-expected.txt
    A LayoutTests/editing/selection/ios/autoscroll-text-field-in-subframe.html
    M Source/WebCore/page/EventHandler.h
    M Source/WebCore/page/FocusController.cpp
    M Source/WebCore/page/ios/EventHandlerIOS.mm
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

  Log Message:
  -----------
  Inputs with overflowing content cannot be scrolled within an iFrame.
https://bugs.webkit.org/show_bug.cgi?id=277666
rdar://133320357

Reviewed by Abrar Rahman Protyasha.

Add support on iOS for selection autoscrolling, for content inside subframes. 
See below for more
details.

* 
LayoutTests/editing/selection/ios/autoscroll-text-field-in-subframe-expected.txt:
 Added.
* LayoutTests/editing/selection/ios/autoscroll-text-field-in-subframe.html: 
Added.

Add a layout test to exercise this fix. Note that the test will attempt to 
autoscroll against the
right edge of the focused input until it reaches the last selection offset, 
such that it will be
robust even if the maximum autoscrolling speed is lowered in the future.

* Source/WebCore/page/EventHandler.h:
* Source/WebCore/page/FocusController.cpp:
(WebCore::FocusController::setFocusedFrame):

Stop autoscrolling when a frame is no longer focused; this is necessary because 
it's no longer
guaranteed that `WebPage::cancelAutoscroll` will cancel autoscrolling in the 
correct frame, in the
case where the frame was blurred in the middle of autoscrolling.

* Source/WebCore/page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::startSelectionAutoscroll):
(WebCore::EventHandler::cancelSelectionAutoscroll):
(WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const):

Avoid adjusting the target autoscroll position for subframes, since the edges 
of the unobscured
content rect aren't flush with the edges of the layout viewport.

* Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::startAutoscrollAtPosition):

Implement the main fix here — instead of always using the local main frame, 
tell the focused or main
frame to autoscroll.

(WebKit::WebPage::cancelAutoscroll):

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



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

Reply via email to