Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c417392ff6699863b87d98e0bac520a1d033f36f
      
https://github.com/WebKit/WebKit/commit/c417392ff6699863b87d98e0bac520a1d033f36f
  Author: Lily Spiniolas <[email protected]>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M Source/WebKit/UIProcess/RemotePageProxy.cpp
    M Source/WebKit/UIProcess/RemotePageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

  Log Message:
  -----------
  [Site isolation] Swiping over scrollable web content in cross-origin frame 
causes navigation instead of scrolling
https://bugs.webkit.org/show_bug.cgi?id=312311
rdar://174710629

Reviewed by Megan Gardner.

Check if every remote page can short circuit for horizontal wheel events
rather than only checking the page for the main frame process. WebPageProxy
now keeps track of whether the main frame process can short circuit, and
each RemotePageProxy keeps track of whether its respective page can short
circuit. When these values change, WebPageProxy updates a stored value
which represents whether the whole page should short circuit or not (including
cross-origin frames) based on each *PageProxy's
m_canShortCircuitHorizontalWheelEvents* value.

Updated the default value of m_canShortCircuitHorizontalWheelEvents in WebPage
from false to true so that, after layout, if it transitions from having no
scroll-bars to having scrollbars, this value will differ from the default and
trigger `updateCanShortCircuitHorizontalWheelEvents` to ensure
`m_canShortCircuitHorizontalWheelEvents` becomes `false` in `WebPageProxy`,
thus preventing scrolling from failing to work.

Test: Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm

* Source/WebKit/UIProcess/RemotePageProxy.cpp:
(WebKit::RemotePageProxy::didReceiveMessage):
(WebKit::RemotePageProxy::setCanShortCircuitHorizontalWheelEvents):
* Source/WebKit/UIProcess/RemotePageProxy.h:
(WebKit::RemotePageProxy::canShortCircuitHorizontalWheelEvents const):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setCanShortCircuitHorizontalWheelEvents):
(WebKit::WebPageProxy::updateCanShortCircuitHorizontalWheelEvents):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::pageContainsAnyHorizontalScrollbars const):
(WebKit::WebPage::recomputeShortCircuitHorizontalWheelEventsState):
(WebKit::pageContainsAnyHorizontalScrollbars): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation, 
CrossOriginIframeWithHorizontalOverflowWillHandleHorizontalScrollEvents)):
(TestWebKitAPI::(SiteIsolation, 
CrossOriginIframeWithoutHorizontalOverflowCanShortCircuitHorizontalScrollEvents)):

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



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

Reply via email to