Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9a30ed656c7f83a1af1139542cc828e41fcb7d32
      
https://github.com/WebKit/WebKit/commit/9a30ed656c7f83a1af1139542cc828e41fcb7d32
  Author: Joanne Pan <[email protected]>
  Date:   2026-04-02 (Thu, 02 Apr 2026)

  Changed paths:
    A 
LayoutTests/pointerevents/ios/pointerdown-prevent-default-prevents-page-scrolling-expected.txt
    A 
LayoutTests/pointerevents/ios/pointerdown-prevent-default-prevents-page-scrolling.html
    A 
LayoutTests/pointerevents/ios/pointerdown-without-prevent-default-allows-page-scrolling-expected.txt
    A 
LayoutTests/pointerevents/ios/pointerdown-without-prevent-default-allows-page-scrolling.html
    M Source/WebCore/page/PointerCaptureController.cpp
    M Source/WebCore/page/PointerCaptureController.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  netflix.com: Webpage scrolls when adjusting volume (VisionOS and iPad)
https://bugs.webkit.org/show_bug.cgi?id=311217
rdar://173808616

Reviewed by Brent Fulgham.

The problem: Netflix's volume slider calls preventDefault() on pointerdown
to stop the page from scrolling while dragging on the slider, but it was
ignored by WebKit. React has passive touch listeners, so WebKit classifies
it as TrackingType::Asynchronous, which routes the event to 
sendUnpreventableTouchEvent
instead of sendPreventableTouchEvent.

The fix: The unpreventable path's async reply was discarding the handled result
from the web process. Now when handled=true, it propagates the result back to
the UI process where the scrolling is blocked by panning prevention flags.

Tests: 
pointerevents/ios/pointerdown-prevent-default-prevents-page-scrolling.html
       
pointerevents/ios/pointerdown-without-prevent-default-allows-page-scrolling.html

* 
LayoutTests/pointerevents/ios/pointerdown-prevent-default-prevents-page-scrolling-expected.txt:
 Added.
* 
LayoutTests/pointerevents/ios/pointerdown-prevent-default-prevents-page-scrolling.html:
 Added.
* 
LayoutTests/pointerevents/ios/pointerdown-without-prevent-default-allows-page-scrolling-expected.txt:
 Added.
* 
LayoutTests/pointerevents/ios/pointerdown-without-prevent-default-allows-page-scrolling.html:
 Added.
* Source/WebCore/page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::pointerEventWasDispatched):
* Source/WebCore/page/PointerCaptureController.h:
(WebCore::PointerCaptureController::resetPointerDownDefaultPrevention):
(WebCore::PointerCaptureController::wasPointerDownDefaultPrevented const):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::sendUnpreventableTouchEvent):
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _touchEvent:preventsNativeGestures:]):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::handleTouchEvent):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to